使用php的laravel框架写的项目, 无法实现浏览器缓存
来源:3-7 Nginx作为静态资源web服务_浏览器缓存场景演示
愤怒的米饭
2020-04-13
老师好.
我使用LNMP环境, 用php7.2, laravel5.8写了一个网站. 希望通过配置nginx.conf实现浏览器缓存.
nginx配置文件如下:
由于担心laravel框架自己设置请求头, 我还特意添加了fastcgi_ignore_headers . 但是从浏览器查看到的情况来看, 依然无法实现浏览器缓存, 在浏览器端可以看到max-age, last-modify, expires等字段, 但是响应码始终是200 , 不是304. 如下图:
我想请教三个问题:
- 为什么我设置浏览器缓存不能成功? 应该如何做?
- 如上图一. 我的nginx.conf配置中. fastcgi_ignore_headers 是不是只设置在.php的location中就可以了? 图片和js文件那两个location就不需要了吧? 因为只有.php那个location是走fastcgi的. 图片和js文件那两个location类似于动静分离, 没有走fastcgi的逻辑, 所以就不需要了. 我这样理解对么?
- 如上图一, 我在conf文件配置中, 所有的location中, max-age配置的都是3600s; 为什么在上图三中, 请求.js或.css静态文件时, max-age的值是10800秒, 而图二中, 请求php动态接口时显示的是正常的3600秒?
写回答
1回答
-
Jeson
2020-04-14
1、我的nginx.conf配置中. fastcgi_ignore_headers 是不是只设置在.php的location中就可以了? 图片和js文件那两个location就不需要了吧? 因为只有.php那个location是走fastcgi的.
是的 理解没错。
2、如上图一, 我在conf文件配置中, 所有的location中, max-age配置的都是3600s; 为什么在上图三中, 请求.js或.css静态文件时, max-age的值是10800秒, 而图二中, 请求php动态接口时显示的是正常的3600秒?
这里 你用expires来设置。
expires 1h;
看看是否匹配预期?
012020-04-14
相似问题
服务缓存问题
回答 5
nginx 缓存配置
回答 2