- Web Development with Django Cookbook(Second Edition)
- Aidas Bendoraitis
- 316字
- 2021-07-23 14:31:59
Setting up STATIC_URL dynamically for Subversion users
If you set STATIC_URL
to a static value, then each time you update a CSS file, JavaScript file, or image, you will need to clear the browser cache in order to see the changes. There is a trick to work around clearing the browser's cache. It is to have the revision number of the version control system shown in STATIC_URL
. Whenever the code is updated, the visitor's browser will force the loading of all-new static files.
This recipe shows how to put a revision number in STATIC_URL
for subversion users.
Getting ready
Make sure that your project is under the subversion version control and you have BASE_DIR
defined in your settings, as shown in the Defining relative paths in the settings recipe.
Then, create the utils
module in your Django project, and also create a file called misc.py
there.
How to do it…
The procedure to put the revision number in the STATIC_URL
setting consists of the following two steps:
- Insert the following content:
# utils/misc.py # -*- coding: UTF-8 -*- from __future__ import unicode_literals import subprocess def get_media_svn_revision(absolute_path): repo_dir = absolute_path svn_revision = subprocess.Popen( 'svn info | grep "Revision" | awk \'{print $2}\'', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, cwd=repo_dir, universal_newlines=True) rev = svn_revision.communicate()[0].partition('\n')[0] return rev
- Then, modify the
settings.py
file and add the following lines:# settings.py # … somewhere after BASE_DIR definition … from utils.misc import get_media_svn_revision STATIC_URL = "/static/%s/" % get_media_svn_revision(BASE_DIR)
How it works…
The get_media_svn_revision()
function takes the absolute_path
directory as a parameter and calls the svn
info shell command in that directory to find out the current revision. We pass BASE_DIR
to the function as we are sure that it is under version control. Then, the revision is parsed, returned, and included in the STATIC_URL
definition.
See also
- The Setting up STATIC_URL dynamically for Git users recipe
- The Setting the Subversion ignore property recipe
- LaTeX Cookbook
- Android和PHP開發(fā)最佳實(shí)踐(第2版)
- Mastering Adobe Captivate 2017(Fourth Edition)
- Objective-C應(yīng)用開發(fā)全程實(shí)錄
- Vue.js前端開發(fā)基礎(chǔ)與項(xiàng)目實(shí)戰(zhàn)
- Wireshark Network Security
- Mastering Swift 2
- C++面向?qū)ο蟪绦蛟O(shè)計(jì)習(xí)題解答與上機(jī)指導(dǎo)(第三版)
- jQuery Mobile移動(dòng)應(yīng)用開發(fā)實(shí)戰(zhàn)(第3版)
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)案例教程
- .NET 4.5 Parallel Extensions Cookbook
- GitHub入門與實(shí)踐
- Yii2 By Example
- 安卓工程師教你玩轉(zhuǎn)Android
- Visual FoxPro程序設(shè)計(jì)習(xí)題及實(shí)驗(yàn)指導(dǎo)