對於我的django項目,我需要閱讀我的項目的當前git修訂版本號,該項目支持站點,假設項目是git存儲庫的根目錄。Django:獲取當前項目的git修訂號
這樣,我會保持我的CSS和JS頁面總是最新的,例如:
<link rel="stylesheet" type="text/css" href="/media/css/app.css?v46">
其中46爲版本號。
對於我的django項目,我需要閱讀我的項目的當前git修訂版本號,該項目支持站點,假設項目是git存儲庫的根目錄。Django:獲取當前項目的git修訂號
這樣,我會保持我的CSS和JS頁面總是最新的,例如:
<link rel="stylesheet" type="text/css" href="/media/css/app.css?v46">
其中46爲版本號。
好了,對不起,不回答您問題,但也有幾個百分點,你可能要注意:
.css
文件提供給客戶端)os.path.getmtime("path.to.file")
)的last-modified
文件系統的屬性,您可能想看看這照顧這個問題對你來說,像Django的mediagenerator項目: http://www.allbuttonspressed.com/projects/django-mediagenerator
無需推倒重來;)
我加入了templatetag到我的Django項目解決了這個:
在凸出/ templatetags,加入version.py :
from django import template
import time
import os
register = template.Library()
@register.simple_tag
def version_date():
return time.strftime('%m/%d/%Y', time.gmtime(os.path.getmtime('../.git')))
然後,在我的base.html文件,並補充說:
{% load version %}
<span class='version'>Last Updated: {% version_date %}</span>
你可以調整它使用版本號如果你選擇基於日期/時間,然後追加到你的stylesheets/js文件。
+1,儘管我需要指出git * does *有修訂號,但是,它們不是順序的。它們對人類來說也很不方便,因爲它們是十六進制的大字符串。 – Arafangion
@Arafangion他們不是完全修訂*數字*是他們嗎?;) – aviraldg
我要讓你完成,但十六進制字符串是數字,他們只是有一個不同的基礎(16) impropermemeuse> –