關(guān)于nginx配置 獲取靜態(tài)資源
問(wèn)題描述
比如一個(gè)本地項(xiàng)目,啟動(dòng)服務(wù)后應(yīng)該是 127.0.0.1: 端口號(hào) ,用這樣的方式能訪問(wèn),然后我在nginx的vhosts文件夾下面新建了一個(gè) ‘a(chǎn).xxxx.com.conf’的文件,在這里配置完以后,那么我本地的項(xiàng)目就可以通過(guò)a.xxxx.com訪問(wèn)。
現(xiàn)在問(wèn)題是在項(xiàng)目里有存放靜態(tài)文件的目錄,那么我要怎么做才能訪問(wèn)到靜態(tài)文件呢?小白一枚,希望大神能告訴下怎么解決,或者幫貼個(gè)代碼參考一下。
比如我想獲得web下的javascript目錄下的js文件,目前我通過(guò)在vhosts下的a.xxxx.com.conf這么配置的方式可以獲取到。如下:location ~*/javascript/{
root /Users/xxx/WebstormProjects/myprojects/web/javascript
}
但是我想實(shí)現(xiàn)的方式其實(shí)是這樣的,比如我想通過(guò)img.xxx.com/javascript/a.js,這樣的方式能獲取到web下的資源該如何做呢?
謝謝謝謝。再結(jié)合我描述的看下下圖.
問(wèn)題解答
回答1:怎么沒(méi)人回答啊?我也不是很懂,稍微說(shuō)點(diǎn)我明白的吧
location /img { root /www/abc }
意思是訪問(wèn) a.xxxx.com/img 時(shí),到/www/ abc 中查找,就相當(dāng)于圖片在/www/abc/img 下手機(jī)打的,不詳細(xì)見(jiàn)諒,僅供參考
回答2:你這個(gè)姿勢(shì)本身就不太對(duì)。你是不是有點(diǎn)感覺(jué),訪問(wèn)一個(gè)URL,既想讓他訪問(wèn)到你的服務(wù),又想讓他訪問(wèn)到你的靜態(tài)文件。也許你會(huì)說(shuō),我的服務(wù)的URL和靜態(tài)文件的URL不一樣啊。問(wèn)題就在這里,對(duì)于WEB服務(wù)器,他怎么知道不一樣呢,你的服務(wù)URL與靜態(tài)資源的URL有何不同?如果說(shuō)的出不同,那么就是你的配置文件的規(guī)則。
通常情況下,在動(dòng)態(tài)程序中,人們是這樣設(shè)定的規(guī)則:
方案1請(qǐng)先嘗試這個(gè)URL是不是文件,是不是文件夾,如果是,請(qǐng)返回靜態(tài)資源
如果不是,請(qǐng)交給動(dòng)態(tài)程序(服務(wù))來(lái)處理
對(duì)應(yīng)的配置文件可能是這樣的:
server { listen 80; server_name a.xxx.com; index index.shtml index.html index.php; root /Users/xxx/WebstormProjects/myprojects/web/; location / {try_files $uri $uri/ /index.php$is_args$args; } location ~ .php$ {root /Users/xxx/WebstromProjects/myprojects/server/;fastcgi_pass 127.0.0.1:9001;fastcgi_index index.php;include fastcgi.conf; }}
而此時(shí),一般會(huì)將主目錄設(shè)置為: /Users/xxx/WebstormProjects/myprojects/web/ 并且在web目錄中放置一個(gè)index.php作為服務(wù)的入口,index.php可以將app的程序目錄設(shè)置為server。(那么久刪除php配置段的root)
方案2如樓上所說(shuō),主目錄是服務(wù)目錄,但我們有規(guī)則 ,javascript,css,images,uploads等目錄存放在web目錄下,于是,設(shè)定已這些路徑開(kāi)頭的訪問(wèn)將目錄指向到 web目錄下。
server { listen 80; server_name a.xxx.com; index index.html index.shtml index.php; root /Users/xxx/WebstromProjects/myproject/server; location / { // server } location ~ /(javascript|css|images) {root /Users/xxx/WebstromProjects/myproject/web; }}
提供一些思路,歸結(jié)其實(shí)就一條,先想好,你的訪問(wèn)規(guī)則,什么URL是什么,對(duì)應(yīng)配置就好。
回答3:為了回答你的問(wèn)題,特意注冊(cè)了一賬號(hào)
location /c/ {
alias /a/
}
如果訪問(wèn)站點(diǎn)http://location/c訪問(wèn)的就是/a/目錄下的站點(diǎn)信息。
相關(guān)文章:
1. 就一臺(tái)服務(wù)器,mysql數(shù)據(jù)庫(kù)想實(shí)現(xiàn)自動(dòng)備份,如何設(shè)計(jì)?2. mysql - thinkphp5 在MAC電腦本地正常,部署LINUX服務(wù)器之后,模型不存在3. 編輯管理員信息時(shí),為什么沒(méi)有修改過(guò)的內(nèi)容會(huì)為空?4. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過(guò)段時(shí)間會(huì)消失是什么情況?5. javascript - 百度圖片切換圖片時(shí)url會(huì)改變,但無(wú)刷新,沒(méi)用hash,IE8也支持,請(qǐng)問(wèn)是用了什么技術(shù)?6. 這是什么情況???7. node.js - win10如何安裝并使用babel?8. python - xpath中如何使用變量9. APP上傳到電腦服務(wù)器,出現(xiàn)數(shù)據(jù)上傳不完整的問(wèn)題10. mysql服務(wù)無(wú)法啟動(dòng)1067錯(cuò)誤,誰(shuí)知道正確的解決方法?
