[英]Django - referencing static files in templates
我在我的模板中引用靜態文件有困難。 我正在使用 Twitter Bootstrap 並將引導程序文件(css、img、js)放在 mysite/static 中。
我已經根據本教程設置了STATIC_URL
、 STATIC_ROOT
和TEMPLATE_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">
<!--->
完整性更新
文件夾結構
設置文件
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.