Django靜態URL配置

weixin_34119545發表於2014-03-27

相關

  命令列執行檢視靜態檔案配置

緣由

  新手學習 Django 當配置好 HTML 頁面後,就需要使用一些靜態資源,如圖片,JS 檔案,CSS 樣式等,但是 Django 裡面使用這些資源並不是直接引用一下就好,還要配置路徑即 STATIC_URL 如果這個配置不好的話,請求這些靜態資源將返回 HTTP 404 。

經驗傳授

  1. 輸出 settings.py 檔案裡面的 STATIC_URL 到HTML頁面,看一下物理路徑指向了哪些,通常是不是跑出根目錄的。這裡給個DEMO:

def home(request):
    t = get_template("index.html")
    html = t.render(Context({
        "template_dir":settings.TEMPLATE_DIRS[0],
        "title":"Home",
        "static_dir":settings.STATIC_ROOT}))
    return HttpResponse(html)

  這樣訪問的HTML頁面就可以看到這些路徑了。

 

  2. 配置 STATIC_ROOT 變數

STATIC_ROOT = os.path.join(os.path.dirname(__file__), '..', 'templates/content').replace('\\','/'

  可能通過調整第二個和第三個引數來將路徑修改正確。(多除錯)

 

  3. 在 urls.py 檔案中配置 urlpatterns 變數(主要看高亮這一行):

urlpatterns = patterns('',
    url(r'^$', home),
    url(r'^static/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}),
)

 

  4. 測試以上配置:

<head>
    <meta charset="UTF-8"/>
    <title>{{ title }} - Oger</title>
    <script type="text/javascript" src="/static/scripts/jquery-1.11.0.min.js"></script>
</head>

  或

<head>
    <meta charset="UTF-8"/>
    <title>{{ title }} - Oger</title>
    {% load staticfiles %}
    <script type="text/javascript" src="{% static 'scripts/jquery-1.11.0.min.js' %}"></script>
</head>

  這兩種用法都是可以的。

  用 Django 開發Web站點還是很方便的。繼續學習中...

相關文章