2014-01-14 143 views
2

有沒有任何通過只有一些URL路徑來提供靜態文件的方法?例如,下一個網址格式http://host/static/*.png/static/子字符串(路徑),Nginx將從那裏提供任何靜態信息。Nginx:通過URL路徑提供靜態文件

在Web服務器文檔,我發現了一個例子:

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js)$ { ... 

和定義我的Nginx的配置這樣的:

location/{ 
     try_files $uri $uri/ /index.html; 
    } 

    location /apib { 
     #some proxy_pass 
    } 

    location /apim { 
     #some proxy_pass 
    } 

    location /api { 
     #some proxy_pass 
    } 

我嘗試添加額外的location*/static/*.*與根目錄/var/www/some_statics

回答

3
location ~* ^/static/.+\.(png|whatever-else)$ { 
    alias /var/www/some_static; 
    expires 24h; 
} 
location/{ 
    # regular rules 
} 

手寫,可能包含錯誤。

如果您想擴展規則以匹配anything/something/static/*.png,只需刪除模式中的^即可。

+0

Nginx從config的服務器部分發送索引頁(root)。 – akrisanov

+0

@akrisanov是的。除非在塊內部由'root'或'alias'指定,否則它們從上層配置繼承。 – msg7086

+0

http://d.pr/i/ViNT我的意思是,你的解決方案不起作用。我現在完整的配置:https://gist.github.com/akrisanov/8413535 – akrisanov

相關問題