使用.htaccess在Laravel应用中利用浏览器缓存未能生效

3

我正试图为我的Laravel 5.5应用程序中的图像设置Cache-Control头。我使用.htaccess文件(放置在myapp/public目录中):

<IfModule mod_rewrite.c>
    # rewrite directives...
</IfModule>

<FilesMatch ".(jpg|jpeg|svg)$">
    Header set Cache-Control "max-age=31536000, public"
</FilesMatch>

很不幸的是,指定的静态资源没有设置Cache-Control头部信息,所以我可能做错了什么。

我是.htaccess语法写错了吗?还是Laravel特有的问题?或者是其他什么问题呢?

更新: 我忘了提到我正在使用的服务器-Nginx,这是一个重要的线索,正如事实证明的那样


1
检查您的服务器是否已启用模块。 - Sapnesh Naik
2个回答

4
这对我有用。
# BEGIN Expires-Headers
<IfModule mod_expires.c>
  <FilesMatch "\.(js|css)$">
    ExpiresActive On
    ExpiresDefault "access plus 1 weeks"
  </FilesMatch>
</IfModule>
# END Expires-Headers

# BEGIN Cache-Control-Headers
<ifmodule mod_headers.c>
  <filesmatch "(gif|ico|jpeg|jpe|jpg|svg|png|css|js)$">
    Header set Cache-Control "max-age=604800, public"
  </filesmatch>
</ifmodule>
# END Cache-Control-Headers

0

嗯,我非常不了解。

我的应用程序正在使用Nginx(而非Apache)服务器,并且显然,Nginx不适用于.htaccess文件。相反,它需要自定义配置


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接