django-pipelineで静的ファイルにhashを追加する
django-pipelineで静的ファイルにhashを追加する
なぜhash静的ファイルが必要ですか?
大手企業でフロントエンドコードの開発と導入方法を見てください.張雲龍の答え.
これにより、静的ファイルが変更されると、最新の変更バージョンが容易に取得され、変更されていない静的ファイルはキャッシュが使用されます.これにより、変更後にユーザの静的ファイルが更新されないという気まずい思いを回避し、キャッシュを十分に利用することができる.
demo
django_pipeline_demo
インストール
djangoのライブラリpipeline
mako, django-mako, django-pipeline-demo
効果はdjango_でpipeline_demoを例に挙げます.
まず最終用法を述べる debugはFalse(オンラインは本来False)でなければなりませんが、Trueの場合はdjangoのデフォルトで静的ファイルを検索する方法でpipelineは使用されません. djangoプロジェクト を再起動
アクセントコード解釈
settings.pyのいくつかの構成、どのように構成django-pipelineをインストールするか、ドキュメントを移動してください.
いくつかのcollectに関する構成を説明する
templates/common/static_pipeline.html
index.html
なぜhash静的ファイルが必要ですか?
大手企業でフロントエンドコードの開発と導入方法を見てください.張雲龍の答え.
これにより、静的ファイルが変更されると、最新の変更バージョンが容易に取得され、変更されていない静的ファイルはキャッシュが使用されます.これにより、変更後にユーザの静的ファイルが更新されないという気まずい思いを回避し、キャッシュを十分に利用することができる.
demo
django_pipeline_demo
インストール
sudo mkdir /opt/projects
git clone https://github.com/duoduo369/django_pipeline_demo.git
cd django_pipeline_demo
ln -s $(pwd) /opt/projects
ln -s /opt/projects/django_pipeline_demo/deploy/nginx/django_pipeline.conf /etc/nginx/sites-enabled
pip install -r requirements.txt
python manage.py runserver 0.0.0.0:9888
nginx -s reload
vim /etc/hosts 127.0.0.1:9888 django_pipline_demo.com
djangoのライブラリpipeline
mako, django-mako, django-pipeline-demo
効果はdjango_でpipeline_demoを例に挙げます.
まず最終用法を述べる
python manage.py collectstatic
アクセントコード解釈
settings.pyのいくつかの構成、どのように構成django-pipelineをインストールするか、ドキュメントを移動してください.
いくつかのcollectに関する構成を説明する
# python manage.py collectstatic STATIC_ROOT
STATIC_ROOT = './statics'
# django
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
# css ,collectstatic STATIC_ROOT
# pipeline hash , css/index.css
# collectstatic css/index.as1df14jah8dfh.css
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static_dev"),
)
templates/common/static_pipeline.html
mako url, url , hash 。
<%!
from django.contrib.staticfiles.storage import staticfiles_storage
%>
<%def name='url(file)'><%
try:
url = staticfiles_storage.url(file)
except:
url = file
%>${url}</%def>
index.html
/common/static_pipeline.html, ${static.url(' hash ')}
<%namespace name='static' file='/common/static_pipeline.html'/>
....
<link rel="stylesheet" href="${static.url('css/index.css')}" type="text/css" media="all" />
....