2

我有一个在 zf2 中构建的应用程序,所有的 js、css、图像都在 public 目录中。所有 phtml 文件中需要的 js 和 css 文件都在 Application 模块的 layout.phtml 中声明。

echo $this->headLink (  )
              ->prependStylesheet ( $this->basePath () . '/css/owl.carousel.css' )
              ->prependStylesheet ( $this->basePath () . '/css/owl.theme.css' );

<script type="text/javascript" src="/js/layout.js"></script>         
<script type="text/javascript" src="/assets/bootstrap-fileupload/bootstrap-fileupload.js"></script>
<script src="/js/custom.js"></script>

并且我将特定 phtml 文件所需的文件直接包含在该文件中。我正在使用缓存来缓存图像。但这里的问题是,每当我对我的 js 或 css 文件进行一些更改时,我都会使用 ctrl+f5 来查看更改,否则它们不会反映。以下是我的 .htaccess 文件的配置:

# Enable expirations
ExpiresActive On

# My favicon
ExpiresByType image/x-icon "access plus 1 year�

# Images
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"

如您所见,我已将 htaccess 配置为仅缓存图像,但浏览器会自动缓存 js 和 css 文件。我可以做 ctrl f5 但我怎样才能告诉我的用户 ctrl f5。在一些搜索中,我遇到了资产管理。我正在考虑关注这个Assetic Module。我有一些疑问,比如如何使用它在不同的 phtml 文件中包含 js 或 css 文件?在现有的 ZF2 应用程序中使用它需要进行多少更改?还是有更好选择的人?如果有人早些时候实现了这个,请分享一些代码片段。

4

1 回答 1

1

这与您的 .htacces 或资产的实施无关。

如果可以,浏览器只会缓存 css 和 js 文件。有很多方法可以强制“刷新”或只提供新文件,您可以在此处找到如何强制浏览器重新加载缓存的 CSS/JS 文件?

但是,除非您确实必须这样做,否则我不建议您弄乱它,因为浏览器实际上确实出于某种原因缓存了它。

于 2016-06-14T11:24:30.827 回答