我使用flask-assets进行捆绑,缩小和版本控制(确保当我们更改CSS或JS文件时,浏览器会加载新版本,而不是其缓存中的内容。)但是我们当然希望它随后从缓存中加载。
由于网站只有几个网页而且他们都使用不同的资源,我已经在模板中定义了这些包,正如文档中的Templates Only所述:
{% 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
为假,网站未本地化,也未通过CDN或S3提供。
问题是,当我们推向生产时,捆绑包最初显然还没有被创建。页面缺少CSS和Javascript,apache错误日志包含如下错误:
文件不存在: /srv/our-client/our-client/static/gen/our-page_packed.css,referer: https://app.our-client.com/quux/123/xyz/
在我们多次重新加载页面后,在一两分钟内,这一切都开始工作了。我们偶尔听到客户抱怨听起来像缺少CSS或JS的内容,但它似乎并不存在,而且不清楚这是一个相关的问题。
我担心我远离Flask专家(该网站是由另一位开发人员创建的;我添加了烧瓶资产),但这似乎是一个相当简单的设置。我能做些什么来确保早期创建捆绑文件吗?