Toggle Navigation
首页
Golang
PHP
Laravel
Magento
Linux
数据库
MySQL
Redis
Mongodb
热门知识
程序与生活
架构师之路
静态站点
GitHub
主页
Magento给js、css添加版本号
Magento给js、css添加版本号
10-30
Mark
983
有时候我们会碰到这样一个问题:明明已经更改了CSS、JS问题,当时上传到正式环境时,刷新后还是没有看到我们预想中的效果。这时候不得不Ctrl + F5强制刷新浏览器的缓存才能够解决这个问题。但是如果这个问题发生在客户身上呢?总不能在网站上贴个告示让客户Ctrl + F5吧?这时候我们就需要给CSS、JS文件添加版本号。这样子每当更新过这个文件后,浏览器就不会加载缓存到的文件,这个问题也就解决了。 重写Mage_Page_Block_Html_Head文件中的_prepareStaticAndSkinElements方法: ```php foreach ($staticItems as $params => $rows) { foreach ($rows as $name) { $items[$params][] = $mergeCallback ? Mage::getBaseDir() . DS . 'js' . DS . $name : $baseJsUrl . $name .'?v='.filemtime(Mage::getBaseDir() . DS . 'js' . DS . $name); } } foreach ($skinItems as $params => $rows) { foreach ($rows as $name) { $items[$params][] = $mergeCallback ? $designPackage->getFilename($name, array('_type' => 'skin')) : $designPackage->getSkinUrl($name, array()).'?v='.filemtime($designPackage->getFilename($name, array('_type' => 'skin'))); } } ``` 这里以文件最后的修改时间为版本号,每当文件被修改时版本号改变,浏览器需要重新发起请求读取文件而不是读取缓存中的文件。 国外一个介绍合并CSS、JS后添加版本号的方法: [http://smith-web.net/2013/02/09/magento-css-auto-versioning/](http://smith-web.net/2013/02/09/magento-css-auto-versioning/) 整个思路是:循环获取每个css文件最后的修改时间,取最大的修改时间,然后加在合并文件名称的后面,这样子每当有文件被修改时,文件名称就会发生变化,就会重新生成文件,这样子就能使浏览器获取到最新的修改文件而不是仍读取缓存中的文件。
最新文章
Golang内存问题处理
WebSocket详解
Gopher面试中的Coding(三)
Golang用os/signal包实现平滑重载配置文件
Nginx实现负载均衡的几种方式
Golang中子goroutine与主协程同步的四种实现
Dockerfile文件详解
Golang开发微信公众号
最热文章
Magento实现下载csv数据表格
1887
Laravel带有条件搜索的分页
1808
Magento上传文件、缩略图和导出CSV
1758
Golang开发微信公众号
1728
Magento添加Advanced Dataflow
1715
Magento后台添加rule规则
1639
Magento优化 – MySQL读写分离
1589
Magento常用模块分享
1517
热门标签
下载
laravel分页
上传
导出
微信公众号
Dataflow
rule
规则
读写分离
模块
shell
正则
内存泄漏
Collection
binlog
命名空间
Git
处理
composer
string
package
解锁
锁表
redis sentinel
函数
事务处理
time
架构
系统
读写
golang
事务处理
缓存
日志分析
进阶
schedule
fmt
表分割
Gopher面试
交叉编译
日志分割
事务
分布式锁
HTTPS
Dockerfile
mongodb
channel
git服务器
gogs
php
protobuf
重载配置
版本号
多数据库
负载均衡
concat
mongodb
日志过滤
发展方向
defer
panic
模型关系
goroutine
json
get
post
protobuf
golang算法
代码部署
算法
rpc
docker
elasticsearch
redis
写文件
主从配置
websocket
laravel
package
生成插件
直接下载
数据类型
curl
并发
量级
错误传递
成长
Shell
Go指针
grpc
方法
参数
队列
protobuf
Redis持久化
路上
风景
yum