2012-03-17 54 views
1

當我嘗試緩存靜態文件的用戶,使用nginx的努力緩存CSS時給予403/JS等

location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|ttf|tof|svg|swf)$ { 
     expires max; 
     access_log off; 
     error_log off; 
    } 

靜態文件不加載(並給予403訪問時禁止),所以我的網站加載沒有任何這些靜態文件。當我評論這部分內容時,一切都應該如此。

任何人都可以解釋爲什麼發生這種情況?

+0

你的問題不明確。也許發佈一個鏈接到你的完整配置。從另一個角度來看,這些Nginx配置與在網上找到的長列表靜態文件已經過時了近兩年。 – Dayo 2012-03-17 20:58:41

+0

發生什麼事情是,只要我通過正則表達式的任何文件,它會給出403 Foridden錯誤。我將查詢替換爲\ .css $,現在圖像加載正常,只是CSS提供了403錯誤。 – Ayub 2012-03-17 21:25:56

+0

經過更多的測試,它甚至不必是正則表達式 - 我完成了主要的wordpress css文件的路徑,並且仍然是403ed。我將它修改爲0777,並將nginx正在使用的組www-data添加到所有者中 – Ayub 2012-03-17 21:32:36

回答

1

也許是因爲您沒有在外部上下文中指定任何根指令(例如服務器塊)。

如果添加根指令到服務器塊或者定位塊與路徑的靜態文件夾,這將是固定:

server{ 
    . 
    . 
    . 
    root /path/to/static/folder; 

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|bmp|ttf|tof|svg|swf)$ { 

     # or add a root directive here 
     root /path/to/static/folder; 

     expires max; 
     access_log off; 
     error_log off; 
    } 
}