天天看点

Nginx映射项目外静态资源的实例

关键字含义

  • root 值为本地目录路径。以此值作为location请求路径的根目录。
  • alias 值为本地目录或文件路径。 将请求路径中location部分改写为其值。
  • rewrite 值有两个,一个是匹配路径的正则,一个是改写的拼接字符串。作用是将url中匹配前者的部分,改写为后者。

实例1

需求:

请求/upload/images/bird.jpg,返回项目外E:/raid/www.my.com/uploads/images/bird.jpg。

做法:

location /upload/images {
  root E:/www.my.com/raid/;
}
           

实例2

需求:

请求/upload-images/bird.jpg,返回项目外E:/raid/www.my.com/uploads/images/bird.jpg。

*这次文件资源路径中不包含请求的路径了。

做法:

# 在上一条基础上,改写location /
location / {
  rewrite '^/upload-images/(.*).jpg$' /uploads/images/$1.jpg;
}
           

或者

# 不修改location /
location /upload-images {
  rewrite '^/upload-images/(.*).jpg$' /uploads/images/$1.jpg;
}
           

注意

  • 不要只rewrite URL中的一部分。比如实例2中,若写成

    rewrite '/upload-images/' /uploads/images/;

    会报403。
  • alias不能只替换 URL中一部分。比如不能将rewrite改成

    alias /upload/images/;

继续阅读