【问题标题】:How to use asset manager in zf2?如何在 zf2 中使用资产管理器?
【发布时间】:2016-06-14 09:58:18
【问题描述】:

我有一个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 应用程序中使用它需要进行多少更改?还是有更好选择的人?如果有人早些时候实现过这个,请分享一些代码 sn-ps。

【问题讨论】:

    标签: php zend-framework2 browser-cache asset-management


    【解决方案1】:

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

    如果可以的话,浏览器只会缓存 css 和 js 文件。有很多方法可以强制“刷新”或只提供新文件,您可以在这里找到 How to force browser to reload cached CSS/JS files?

    但是我不建议你这样做,除非你真的必须这样做,因为浏览器确实缓存它是有原因的。

    【讨论】:

    • 感谢您的澄清。我想要缓存 js、css 文件,但是当我对任何文件进行任何更改时,用户应该拥有最新的更改。按照您发布的链接后,我知道这可以通过两种方式完成,一种是向文件 url 添加一些查询字符串,另一种是 google PageSpeed 插件。如果您使用过它们中的任何一个,请帮助我找出哪个更好?
    • 我个人使用了简单客户端技术。这是最简单的imo。你可以在某种程度上为你的 js/css 创建一个版本控制,或者只是保持它创建版本,这样就没有人缓存你的 css/js。
    猜你喜欢
    • 1970-01-01
    • 2011-08-30
    • 2012-09-05
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    相关资源
    最近更新 更多