可以使用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。
: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。