Nginx多个静态路由

时间:2013-11-21 10:12:57

标签: nginx

目录结构:

project
|__profile_pictures
   |__user1.png
|__static
   |__js
      |__main.js

请求:

1)/js/main.js

2)/profile_pictures/user1.png

Nginx配置:

location ~/profile_picture(^.+\.(jpg|jpeg|gif|png)$) {
    alias /home/chirag/Desktop/project/profile_pictures/$1;
    expires -1;
}

location ~*(^.+\.(jpg|jpeg|gif|css|png|js|ico|eot|otf|svg|ttf|woff|hbs)$) {
    alias /home/chirag/Desktop/project/static/$1;
    expires -1;
}

第一个请求应该转到静态文件夹。(工作) 第二个请求应该转到profile_pictures文件夹。

第二个请求失败。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

问题在于第一个个人资料图片位置块。所以处理这个的正确方法是

location ~ ^/profile_picture/(.+\.(jpg|jpeg|gif|png)$) {
     alias /home/chirag/Desktop/project/profile_pictures/$1;
     expires -1;
}

location ~*(^.+\.(jpg|jpeg|gif|css|png|js|ico|eot|otf|svg|ttf|woff|hbs)$) {
    alias /home/chirag/Desktop/project/static/$1;
    expires -1;
}

不要在正则表达式的中间使用^。它意味着建议开始。你也错过了以下/在个人资料照片之后。新的位置块应该适合您。

祝你好运。干杯