这是相当合适的情况,每次从服务器刷新页面后都不会下载 CSS 文件。
在浏览器中查找键盘组合,用于重新加载页面并刷新开发周期的缓存(通常是Shift + F5或Shift + Ctrl +R)。
另一个问题是如何告诉 100 万用户在更改实时站点后按下组合:最简单的方法是在 CSS/JS 文件名中添加一个唯一的字符串:
<link rel="stylesheet" href="/assets/css/main/css?12345" />
你可以通过多种方式做到这一点,
首先只需手动添加它,然后在 CSS/JS 中的重要更改也更改?12345
为?34567
所有文件之后
<link rel="stylesheet" href='@routes.Assets.at("css/main.css")?12345'>
第二 - 半自动:使用一些控制器的方法来生成时间戳
<link href='@routes.Assets.at("css/main.css")?@Application.timestamp()' rel="stylesheet">
<script src='@routes.Assets.at("js/scripts.js"?@Application.timestamp())' type="text/javascript"></script>
并在中创建timestamp()
方法Application.java
public static String timestamp(){
// here you can add some more control
// but DON'T set new timestamp each time,
// cause you'll make the browser's cache useless
return "12345";
}
第三种解决方案将是未来实时站点的最佳选择:使用 Application.timestamp() 为每个文件设置自定义时间戳。在这种情况下,您可以在需要时更改/重置它们,而无需重新编译应用程序并将 jars 发送回服务器。当然,在这种情况下,您不应该将 CSS 文件保存在 Play 的public
文件夹中,相反,最好使用前端 HTTP 服务器从某个 FTP 位置为它们提供服务,并使用 Play 的数据库仅存储路径。