2016-01-29 37 views
0

我有nginxsites-enabled兩個站點啓用站點-:Nginx的失去了我的靜態圖像的一個網站在

1)project - 這基本上是頂級域 - mysite.com

server { 
    listen 80; 
    location/{ 
     proxy_pass http://localhost:8000; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 
    location /static { 
     alias /home/www/flask-deploy/project/static/; 
    } 
} 

mysite.com:8080

server { 
    listen 8080; 

    location blog/ { 
     proxy_pass http://localhost:8000; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 
    location /static { 
     alias /home/www/flask-deploy/blog/static/; 
    } 
} 

Nginx的已接受兩種配置中,b: - 2)blog這是一個博客,經由可訪問當我訪問1我得到的所有文字,但沒有CSS或圖像。

如果我訪問2我得到一切工作正常。

我在做什麼錯?

謝謝

回答

0

alias指令正常工作,URI在location和URI在alias指令應在/兩端或/沒有結束。該算法似乎將一個字符串替換爲另一個字符串。

所以你應該寫:

location /static { 
    alias /home/www/flask-deploy/project/static; 
} 

然而,當別名的最後一個元素(一個或多個)匹配的位置,root指令優先(見this):

location /static { 
    root /home/www/flask-deploy/project; 
} 

您的location blog/看起來不正確,前綴位置應始終以/開頭。

+0

「博客」的實際位置區塊如何? – CodeTalk

+0

應該靜態在博客的位置塊內嗎? – CodeTalk

+0

'location/blog'和'location/blog /'分別以'/ blog'和'/ blog /'開頭的URI是可以接受的,後者是前者的一個子集。嵌套位置必須是子集或父URI,因此'location/blog/images'可以嵌套在'location/blog'內,但'location/images'不能。 –

相關問題