nginx处理静态资源
电脑版发表于:2019/6/14 17:44
如果我们使用了nginx反向代理后,直接去项目中请求我们的静态资源会比较慢,当然我们有条件使用cdn更好,没有
不使用cdn,也可以我们请求静态资源直接请求nginx就不转发一次了也可以提高一点访问的效率。
简单的配置文件:
server {
listen 8090 ;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / { #其他资源只能走转发即可
root html;
index index.html index.htm;
proxy_pass http://localhost;
}
location ~.*\.(js|css|jpg|png)?$ #监听静态资源的请求
{
root C:/Users/Administrator/Desktop/nginx-1.12.2/nginx-1.12.2;#设置静态资源的存储位置
expires 1h;
}
}这里主要就是两个东西:
一个是接听静态资源的请求:
location ~.*\.(js|css|jpg|png)?$
一个就是请求的具体地址:
root C:/Users/Administrator/Desktop/nginx-1.12.2/nginx-1.12.2;#设置静态资源的存储位置
我们在nginx所在目录新建了一个content文件夹,然后你们放了几个简单的css,js


如果配置成功后,我们访问静态资源,就可以不需要转发一次了,直接就请求nginx下面的资源


当然配置一次可能访问会不成功,看日志,看日志!,nginx的日志是个好东西,一般都是路径错误什么的,
仔细检查一下就知道了。
比如我们把静态资源的路径配置成这样:就是一个/
location ~.*\.(js|css|jpg|png)?$ #监听静态资源的请求
{
root /;#静态资源的路径
expires 1h;
}然后我们在去访问资源就会访问不到:
看日志!就会发现是路径不对:
看路径就会知道它请求的地址是:C:/content/mystyle.css,但是我们真正的资源地址并不是整个,所以找不到就会报错了
,它认为/就是c盘了。
配置成相对路径的学习过程
总感觉写绝对路径不好 ,nginx换了位置后就访问不到了,当然也许我们做分布式文件存储不会把到放到nginx的文件夹中去,但是还是可以尝试一下,nginx相对路径的配置方法
直接设置成root的尝试:
location ~.*\.(js|css|jpg|png)?$ #监听静态资源的请求
{
root root;#静态资源的路径
expires 1h;
}但是访问并不行找的路径是这个: 路径多了一个root出来

然后我就想,既然多了一个root出来,那我不写行不行,然后试了一下不行留空是不行的!
然后尝试了一下留一个空字符串就行了!
location ~.*\.(js|css|jpg|png)?$ #监听静态资源的请求
{
root "";#静态资源的路径,留空字符串表示跟目录
expires 1h;
}
多思考对尝试实践中真理
