我喜欢LESS css和Google Closure编译器对Play 2的支持。有没有办法添加对自动版本控制的支持,以便我不必担心每次重命名文件时做出改变。 社区中的其他人如何处理此问题?PlayFramework 2.0.1资产版本
1
A
回答
1
我认为这是您正在谈论的缓存问题。如果这是你正在讨论的版本化问题,那么这是git或mercurial等Version Control System的工作。
您将对每个静态资源都有这个缓存问题。
为了让网页快速显示在客户端(和以具有静态内容在服务器端没有这么多的请求),您将添加Cache-Control和Etag的问题你的HTTP响应指令。浏览器会从缓存中获取这些静态资源。
但是,如果您更改logo.png(例如更改您的公司徽标),因为此图像存储在浏览器缓存中,用户将看不到您的新徽标。
解决方案
我看到该两种解决方案:
- 播放用的eTag和高速缓存控制指令,让用户请求新的静态资源每隔X天。我使用前端服务器(例如Nginx)执行此操作,但您也可以使用该支持(详细的here)
- 创建包含资源版本的假冒query parameters。例如,您可以有
http://www.mydomain.com/public/images/logo.png?v=1.2
。如果更改v
参数,浏览器将不会从缓存中检索它。在服务器端查询参数不会改变任何东西,服务的资源将被再次缓存。
我在附加到所有静态资源的application.conf中使用了配置参数的第二个解决方案。这假设当你更新一个资源时,所有的资源都会重新加载(通常,当你改变你的图片时,你也会改变你的CSS,为什么不改变你的js文件......)
相关问题
- 1. Symfony2:资产版本与资产
- 2. Playframework资产指纹工作
- 3. 警告通过版本2.0.1
- 4. Symfony2:版本2.0.1和DoctrineMigrationsBundle
- 5. Playframework 2.x - 防止资产缓存
- 6. Symfony2.8资产 - 资产版本不适用于网址
- 7. Playframework中的Akka版本
- 8. 安装freeSBIE 2.0.1最新版本?
- 9. 的Node.js和Backbone.js的资产版本
- 10. 咕噜插件资产版本
- 11. 版本1未知资产类型
- 12. Symfony - 资产缓存自动版本化
- 13. 出版资产标签
- 14. 资产版本控制(js和css)和浏览器不拉最近的资产
- 15. 如何查找项目的playframework版本?
- 16. 将playframework版本1.2.7设置为1.3
- 17. views.html.index可用在哪个版本的playframework
- 18. 将playframework版本1变得过时?
- 19. 产品版本
- 20. Playframework 2.0.1模型上传的文件引用
- 21. playframework 2.0.1:连接数据库总是失败
- 22. 将Playframework 2.0构建系统扩展为压缩(gzip)资产
- 23. 多版本资源
- 24. JSF资源版本
- 25. 产品版本号
- 26. 比较版本中产品版本
- 27. 文件版本比。产品版本
- 28. 角2版本(2.0.1)的Internet Explorer(SystemJS)语法错误
- 29. 在ES5中使用Angular2最终版本2.0.1的http示例
- 30. 带SSL配置的Confluent模式注册表2.0.1版本
你能提供一个有关你为#2做了什么的更多细节?你是否重命名文件?我们可以看到你在application.conf中放置了什么吗? – KVISH
在application.conf中:application.version = 1.2。在您的模板中:。这是想法,你可以创建你的方法或隐式参数使它更容易使用。 – iwalktheline
据我所知,一些代理服务器拒绝在URL中使用'?'来缓存任何东西。因此,您可以考虑将URL的版本部分改为URL路径,例如:'server/assets//logo.png'。 –
KajMagnus