簡體   English   中英

Django - 在模板中引用靜態文件

[英]Django - referencing static files in templates

我在我的模板中引用靜態文件有困難。 我正在使用 Twitter Bootstrap 並將引導程序文件(css、img、js)放在 mysite/static 中。

我已經根據本教程設置了STATIC_URLSTATIC_ROOTTEMPLATE_CONTEXT_PROCESSORS 我已經運行了./manage.py collectstatic它復制了 72 個文件。 我還將以下模板標記添加到我的模板 ( index.html ) 文件中,但這沒有用。

{% load staticfiles %}
<link rel="stylesheet" href="{% static user_stylesheet %}" type="text/css" media="screen"/>

任何有關如何引用文件以便引導程序樣式返回模板的幫助將不勝感激!

它應該是

{% load static %}

然后像

<!-- path -->
<link href="{% static 'bootstrap/css/bootstrap.css' %}" rel="stylesheet" type="text/css">
<!--->

完整性更新

文件夾結構

  • 項目
  • 應用程序1
  • 應用程序2
  • myproj_public
  • 靜止的
    • css
      • bootstrap.css
    • js
      • xyz.js

設置文件

STATIC_ROOT = os.path.join(os.path.abspath(
    os.path.join(PROJECT_ROOT, 'myproj_public', 'static')), '')

STATIC_URL = '/static/'

您是否在視圖中設置user_stylesheet上下文變量? 您需要先設置它,然后才能將其傳遞給模板。

我通常只使用{{ static_url }}標簽來做這些事情,所以我的包含引導程序組件的代碼就像。

<link href="{{ STATIC_URL }}bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
<script src="{{ STATIC_URL }}bootstrap/js/jquery.js"></script>

假設 bootstrap 文件夾存在於 static 中。

編輯

對於您的情況,要設置user_stylesheet上下文變量,您需要執行以下操作

dict["user_stylesheet"]= <path to your file>
#add other context variables you might have to
render_to_response(<your template name>, dict, context_instance=RequestContext(request))

當您設置static_root ,例如:

STATIC_ROOT = os.path.join(BASE_DIR, "static_root/")

,所有文件都復制到那里,而不是在project_root/static 這是 Django 1.3 中引入的一種新機制,用於STATICFILES_DIR靜態文件處理:它將收集每個STATICFILES_DIR所有文件以及每個已安裝應用程序下的所有static目錄,因此您將它們全部復制一次。

使用static_root路徑引用 css/js 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM