2015-05-26 36 views
0

我想用nginx而不是快遞服務的靜態內容。Nginx的快遞靜態文件沒有找到

的Nginx服務器塊靜態文件的部分是

location/{ 
    root /var/www/analytics/web/static; 
    try_files $uri $uri/ @analytics_web; 
    expires off; 
    add_header Cache-Control no-cache; 
} 

靜態資源是/var/www/analytics/web/static他們得到服務的,如果我包括快速設置app.use('/static', express.static(app.get('config').paths.static));

任何想法,我錯了。

完全nginx的conf

+0

你能告訴的'輸出/無功/日誌/ nginx的/ error.log'(試圖訪問該頁面後,最後幾行) – AllTheTime

+0

另外,爲什麼你有兩個'位置/'塊?你應該把你的代碼合併成一個。它可能會覆蓋第一個和第二個。 – AllTheTime

+0

最後,如果這並沒有立竿見影的效果,試着在'root'命令後面加上一個斜槓(一旦你將兩個'location /'塊合併在一起),像這樣:'root/var/www/analytics/web/static /;' – AllTheTime

回答

0

終於想通了。

靜態文件的位置區塊需要像

location ~ ^/(assets/|images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) { 
    root /var/www/analytics/web/; 
    access_log off; 
    expires 24h; 
} 
+0

是有道理的。我認爲它是因爲代理將'location /'傳遞給你的快遞服務器覆蓋了任何已經完成的靜態文件服務。通過對靜態文件使用單獨的位置,此衝突消失。 – AllTheTime

+0

感謝您的幫助。 –