可以使用gulp或webpack等工具生成的散列静态资产

rev-assets的Python项目详细描述


一、二、二、二、三、三、三、三、三、三、三、三、四、四、四、四、四、四、四、四、四、四、四、四、四、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六、六图片::https://travis-ci.org/jpscaletti/rev-assets.svg?branch=master
:target:https://travis ci.org/jpscaletti/rev assets
:alt:build status

您关心站点的性能,因此您已将web服务器配置为缓存所有资产很长一段时间。在部署新版本时,最常用的绕过缓存的方法是将资产的哈希值添加到其名称中。
::
“scripts/home.js”->;“scripts/home.1a23b.js”
“styles/home.css”->;“styles/home.aef45.css”

问题是,现在,你的python web应用程序找不到该文件,除非你手动更新模板中的所有url。代码::html+jinja

<;script src={url懔for('static',filename='scripts/home.js')}>;<;/script>;
<;link rel=“stylesheet”href={url懔for('static',filename='styles/home.css')}<;/script>;

只需将模板更改为:

…代码::html+jinja

<;脚本src={scripts/home.js'{asset{url}>;
<;链接rel=“stylesheet”href={{styles/home.css'{asset{url}<;/script>;

,并使用以下代码:

代码::python

app.py
来自烧瓶进口烧瓶,呈现模板
从rev_assets导入revassets

app=flask.flask(u name_u)

rev=revassets(reload=app.debug)
app.jinja_env.filters['asset_u url']=rev.asset_u url

@app.route('/')
def index():
返回呈现模板('index.html')


构建。

这可以通过读取由修订工具生成的“manifest.json”来工作(因此不要忘记将任务运行程序配置为生成一个)。

您可以继续使用旧方法链接未经版本化的资源,如“favicon.ico”和其他类似的资源。

请注意,*这不是一个烧瓶扩展*,而是一个python库。您可以将它与任何其他框架一起使用。您还可以将“revassets”的许多实例链接到不同的清单。




运行测试
======


列在``Requirements\u tests.txt``::

$pip install-r Requirements tests.txt
$python setup.py develop

>要在当前python版本中运行测试,请执行::

$make test

>要在每个受支持的python版本中运行测试,请执行::

$tox

CI<;https://travis ci.org/jpscaletti/rev assets>;``每次更新。




contribution
===

。检查“打开的问题”https://github.com/jpscaletti/rev assets/issues>;``或打开一个新的问题,开始围绕功能理念或缺陷展开讨论。
从“github上的rev assets存储库”开始进行更改。编写一个测试,显示bug已被修复,或者功能正常工作。发送一个请求并对维护程序设置bug,直到它被合并并发布。
:)确保将自己添加到“authors”中。




:版权所有:`juan pablo scaletti<;http://jpscaletti.com/>;``.
:license:bsd-3-clause,请参阅license。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
添加组件后,java JTable为空   java将json发送到php并插入mysql,但返回null   java Spring引导JNDI CommonJ资源   从不同PC创建和合并后的Java servlet问题   java如何在使用findelements时从xpath获取文本   java使用spring boot使用gmail smtp发送电子邮件   java在不使用pojo、bean或getter和setter的情况下获取Json标题的Json数组   Java中的OpenFile对话框将null作为响应   JavaBuilder模式。扩展接口   java中无需替换的数据结构选取   java如何评价Encog中的预测神经网络   java如何在安卓中使用实际的HttpURLConnection进行单元测试?   java使用XML配置禁用WebSocket中的CSRF保护   java如何通过hibernate从多表查询中获取数据?   mysql如何在java中获取更新的行Id   java AEM/CQ组件单一组件/有限组件   java FFmpeg Javacv延迟问题   显示整数数组的java不起作用