绝对 / magento2-cache-bust
Magento 2绝对缓存破坏扩展
This package is not auto-updated.
Last update: 2023-12-18 09:36:19 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。