關于nginx配置 獲取靜態資源
問題描述
比如一個本地項目,啟動服務后應該是 127.0.0.1: 端口號 ,用這樣的方式能訪問,然后我在nginx的vhosts文件夾下面新建了一個 ‘a.xxxx.com.conf’的文件,在這里配置完以后,那么我本地的項目就可以通過a.xxxx.com訪問。
現在問題是在項目里有存放靜態文件的目錄,那么我要怎么做才能訪問到靜態文件呢?小白一枚,希望大神能告訴下怎么解決,或者幫貼個代碼參考一下。
比如我想獲得web下的javascript目錄下的js文件,目前我通過在vhosts下的a.xxxx.com.conf這么配置的方式可以獲取到。如下:location ~*/javascript/{
root /Users/xxx/WebstormProjects/myprojects/web/javascript
}
但是我想實現的方式其實是這樣的,比如我想通過img.xxx.com/javascript/a.js,這樣的方式能獲取到web下的資源該如何做呢?
謝謝謝謝。再結合我描述的看下下圖.
問題解答
回答1:怎么沒人回答啊?我也不是很懂,稍微說點我明白的吧
location /img { root /www/abc }
意思是訪問 a.xxxx.com/img 時,到/www/ abc 中查找,就相當于圖片在/www/abc/img 下手機打的,不詳細見諒,僅供參考
回答2:你這個姿勢本身就不太對。你是不是有點感覺,訪問一個URL,既想讓他訪問到你的服務,又想讓他訪問到你的靜態文件。也許你會說,我的服務的URL和靜態文件的URL不一樣啊。問題就在這里,對于WEB服務器,他怎么知道不一樣呢,你的服務URL與靜態資源的URL有何不同?如果說的出不同,那么就是你的配置文件的規則。
通常情況下,在動態程序中,人們是這樣設定的規則:
方案1請先嘗試這個URL是不是文件,是不是文件夾,如果是,請返回靜態資源
如果不是,請交給動態程序(服務)來處理
對應的配置文件可能是這樣的:
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; }}
而此時,一般會將主目錄設置為: /Users/xxx/WebstormProjects/myprojects/web/ 并且在web目錄中放置一個index.php作為服務的入口,index.php可以將app的程序目錄設置為server。(那么久刪除php配置段的root)
方案2如樓上所說,主目錄是服務目錄,但我們有規則 ,javascript,css,images,uploads等目錄存放在web目錄下,于是,設定已這些路徑開頭的訪問將目錄指向到 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; }}
提供一些思路,歸結其實就一條,先想好,你的訪問規則,什么URL是什么,對應配置就好。
回答3:為了回答你的問題,特意注冊了一賬號
location /c/ {
alias /a/
}
如果訪問站點http://location/c訪問的就是/a/目錄下的站點信息。
相關文章:
1. vue ajax請求回來的數據沒有渲染到頁面2. javascript - node.js中stat() access() open() readFile()都能判斷文件是否存在?3. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處4. 一個mysql聯表查詢的問題5. html的qq快捷登錄怎么搞?求個源碼6. 編程小白 問關于python當中類的方法的參數問題7. python中def定義的函數加括號和不加括號的區別?8. mysql 能不能創建一個 有列級函數 的聯合視圖?9. mysql - select查詢多個紀錄的條件怎么寫10. mysql - 求SQL語句:查詢某個值介于兩個字段值之間的記錄。
