【问题标题】:Speedtest High priority: Enable Browser cachingSpeedtest 高优先级:启用浏览器缓存
【发布时间】:2012-08-11 17:56:31
【问题描述】:

我正在使用 Magento 1.7,并且我最近将我的商店切换到了新的云计算主机。为了检查我的商店表现,我运行了几个 pagespeed 测试。每个结果都给了我相同的高优先级:启用浏览器缓存!

到目前为止,我已经在系统 -> 缓存中激活了每个缓存。所以我不知道为什么我的商店不使用浏览器缓存。

通过切换到新的 Hoster,我删除了存储在 /var 目录中的文件。在将 Magento 商店切换到服务器的简短教程中提到了这一点。

有人知道如何解决这个问题吗?

谢谢!

【问题讨论】:

    标签: magento caching e-commerce browser-cache


    【解决方案1】:

    此建议与 Magento 的缓存无关。

    可以发送浏览器缓存指令来告诉客户端浏览器在尝试刷新之前将页面对象(如图像、媒体内容、页面 html、样式表、javascript 等)保留在本地客户端浏览器缓存中多长时间。这些指令通过 DSO 模块(apache Web 服务器)、服务器配置和 .htaccess 文件条目启用。

    Magento 安装的 .htaccess 文件有以下部分,仅当您的 Web 服务器正在加载 mod_expires DSO Module 时才会激活该部分

    <IfModule mod_expires.c>
    
    ############################################
    ## Add default Expires header
    ## http://developer.yahoo.com/performance/rules.html#expires
    
        ExpiresActive On
        ExpiresDefault "access plus 1 year"
    
    </IfModule>
    

    More information from Yahoo on setting Expires directives

    添加

    如何判断正在加载哪些模块。这仅适用于通过在 Apache 中加载 mod_php5 DSO 模块来运行 php 解释器。创建一个phpinfo() 配置转储页面并查找以下内容:

    当 expires 模块工作并注意您的 .htaccess 条目后,您可以使用 Firefox 中的 LiveHttpHeaders 之类的插件来查看 HTTP 服务器请求/响应标头,如下所示:

    【讨论】:

    • 例如,这是来自 Magento 的 Demostore 的 Speedtest:developers.google.com/speed/pagespeed/… 在左侧,红色的高优先级部分“浏览器缓存”下方。通过单击此建议,您会看到所有不使用到期日期的资源的列表。 (这与我在自己的商店中得到的相同)。为了解决这个问题,我在 .htaccess 中为列出的每个项目设置了到期日期?或者是否有可能为我的整个 Magento 商店设置一个全球性的?谢谢!
    • Magento 社区是否有一个通用的解决方案?
    • 提供的链接是一个演示网上商店,可能没有在 .htaccess 中打开过期功能。要解决此问题,请确保您的 .htaccess 文件具有上述代码片段中的条目,这些条目将 ExpiresDefault 设置为对象访问日期加上一年并变为 ExpiresActive On。这是常见的解决方案。
    • 嗨,我已经在我的 .htaccess 中添加了条目并仔细检查了它。上传更改后的文件后,我再次运行 pagetest,但没有任何改变,我仍然得到相同的建议。如何检查我的 Hoster 是否在他的服务器上激活了 mod_expires?还有什么可能出错的?我是否必须指定文件类型,例如“css、jpg、js ...”?非常感谢!
    • 在我的 phpinfo 中我发现了这个:"session.cache_expire = 180" 这相关吗?
    【解决方案2】:

    复制并粘贴到 .htaccess 文件的末尾以改善浏览器缓存。

    ## EXPIRES CACHING ##
    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access 1 year"
    ExpiresByType image/jpeg "access 1 year"
    ExpiresByType image/gif "access 1 year"
    ExpiresByType image/png "access 1 year"
    ExpiresByType text/css "access 1 month"
    ExpiresByType application/pdf "access 1 month"
    ExpiresByType application/x-javascript "access 1 month"
    ExpiresByType application/x-shockwave-flash "access 1 month"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresDefault "access 2 days"
    </IfModule>
    ## EXPIRES CACHING ##

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 2018-05-05
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 2012-03-12
      • 2015-06-15
      • 1970-01-01
      相关资源
      最近更新 更多