我使用烧瓶资产进行捆绑、缩小和版本控制(确保当我们更改 CSS 或 JS 文件时,浏览器会加载新版本,而不是缓存中的内容......但我们当然希望它加载随后从缓存中)。
由于该站点只有几个页面并且它们都使用不同的资源,因此我在模板本身中定义了捆绑包,如文档中仅模板中所述:
{% assets filters="jsmin", output="gen/our-page_packed.js",
"blah.js", "yadda.js", "rhubarb.js", "wibble.js" %}
<script src="{{ ASSET_URL }}"></script>
{% endassets %}
{% assets filters="cssmin", output="gen/our-page_packed.css",
"css/foo.css", "css/bar.css" %}
<link rel="stylesheet" href="{{ ASSET_URL }}">
{% endassets %}
ASSETS_DEBUG
在生产中为 False,并且该站点未本地化,也未通过 CDN 或 S3 提供服务。
问题是,当我们推动生产时,最初显然没有创建捆绑包。这些页面缺少 CSS 和 Javascript,并且 apache 错误日志包含如下错误:
文件不存在:/srv/our-client/our-client/static/gen/our-page_packed.css,引用者: https ://app.our-client.com/quux/123/xyz/
在我们多次重新加载页面后,在一两分钟内,一切都开始工作了。我们偶尔会听到客户抱怨听起来像是缺少 CSS 或 JS,但它似乎并没有持续存在,也不清楚这是一个相关问题。
恐怕我与 Flask 专家相差甚远(该网站是由另一位开发人员创建的;我添加了烧瓶资产),但它似乎是一个相当简单的设置。我可以做些什么来确保尽早创建捆绑文件吗?