绝对/magento2-cache-bust

此包已被弃用且不再维护。没有建议的替代包。

Magento 2绝对缓存破坏扩展

安装次数: 74,488

依赖项: 0

建议者: 0

安全: 0

星级: 17

关注者: 2

分支: 3

开放问题: 2

类型:magento2-module

3.1.2 2018-11-02 11:14 UTC

README

使用Absolute Cache Bust for Magento 2,您可以确保您的客户正在查看您图像、CSS和JavaScript文件的最新版本。此扩展可以与或没有CDN一起使用,并且还将破坏客户Web浏览器缓存中的本地版本。更多信息请访问 https://abscom.co/cachebust

版本兼容性

  • 对于Magento 2.2.x及更高版本,请使用此扩展的3.x.x版本。
  • 对于较早的Magento版本,请使用此扩展的2.x.x版本。

安装

添加扩展的最佳方式是通过composer。

composer require absolute/magento2-cache-bust

一旦添加了扩展,就可以以常规方式更新Magento 2。

php bin/magento setup:upgrade

Web服务器配置

为了正确解析到 yoursite.com/static/version12345/some/asset.js,需要进行一些Web服务器配置。目的是让Web服务器忽略段 /version12345/,并像没有该段一样处理请求。

请将以下内容添加到Web服务器配置的适当位置。

Nginx

对于静态缓存破坏,Magento已经在推荐的nginx配置中包含了以下内容

location /static/ {
    ...

    location ~ ^/static/version {
        rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
    }
    
    ...

对于媒体缓存破坏,请将以下内容添加到您的nginx配置中

location /media/ {
   ...
   
   location ~ ^/media/version {
       rewrite ^/media/(version\d*/)?(.*)$ /media/$2 last;
   }
   
   ...
}

Apache

对于静态缓存破坏,Magento已经在 pub/static/.htaccess 中包含了以下配置

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Remove signature of the static files that is used to overcome the browser cache
    RewriteRule ^version.+?/(.+)$ $1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l

    RewriteRule .* ../static.php?resource=$0 [L]
</IfModule>

对于媒体缓存破坏,更新 pub/media/.htaccess,如下所示

<IfModule mod_rewrite.c>

############################################
## enable rewrites

    Options +FollowSymLinks
    RewriteEngine on

############################################
## Absolute Cache Bust
    RewriteRule ^version.+?/(.+)$ $1 [L]

############################################
## never rewrite for existing files
    RewriteCond %{REQUEST_FILENAME} !-f

############################################
## rewrite everything else to index.php

    RewriteRule .* ../get.php [L]
    
</IfModule>

CORS

从Magento 2.2.x开始,您还需要配置Web服务器以允许CORS请求,否则您可能会看到如下错误

  • ... OPTIONS ... 405 ()
  • 未捕获的语法错误:意外的JSON输入结束
  • 对于预检请求的响应具有无效的HTTP状态代码405
  • 不允许请求头字段x-requested-with
  • 不存在'Access-Control-Allow-Origin'头
  • CORS策略阻止了访问

您可以在以下位置找到更多有关所需配置的信息:https://absolutecommerce.co.uk/cors-in-magento-2

使用

安装和配置完成后,有各种方法可以破坏您的Magento 2网站的缓存资源。

管理面板按钮

在Magento管理面板中,转到 系统 > 缓存管理,您将在底部看到一个名为 缓存破坏 的新部分。点击这些按钮将更新动态元素 /version12345/ 的新值,然后清除相应的Magento缓存,这样当您的客户下次访问时,他们将重新下载资源。

命令行界面(CLI)

在 Magento CLI 工具中,您将看到一些新命令可用,例如可以在部署期间自动清除缓存。

./bin/magento absolute:cache-bust:all
./bin/magento absolute:cache-bust:static
./bin/magento absolute:cache-bust:media

帮助 / 支持

需要帮助或定制开发?请访问https://absolutecommerce.co.uk。有关条款和条件以及许可信息,请访问https://abscom.co/terms