0
我正在使用Django 1.8。每它說,鑑於在開發環境中的默認設置,你應該能夠使用以下目錄中的模板/靜態文件文檔:Django靜態/模板加載器
mysite/main/templates/main/template.html
mysite/main/static/main/style.css
隨着我需要添加os.path.join(BASE_DIR, 'main/templates')
到我的模板顯示目錄的模板。有了靜態文件,我無法通過任何方式找到它們。
該文檔似乎表明,在開發過程中,模板/靜態加載器應自動查找這些目錄,然後找到靜態文件和模板文件,而不必在設置中定義目錄。由於某種原因,他們不是。我敢肯定,我錯過了一些小小的東西,但我完全沒有想到它。
感謝您的任何幫助。
編輯:
在我看來,我打電話與渲染快捷方式的模板:
from django.shortcuts import render
def index(request):
data = {}
return render(request, 'main/index.html', data)
在我的模板文件,我想打電話給我的靜態文件,像這樣:
{% load staticfiles %}
<html>
<head>
<title>Purple Cross</title>
<link rel="stylesheet" type="text/css" href="{% static main/css/style.css %}">
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
編輯2:
main.urls.py:
from django.conf.urls import url
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^$', views.index, name='index'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
至於設置文件所說,這裏是相關的靜態文件的唯一的事情(+安裝的應用程序):
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
)
STATIC_URL = '/static/'
對不起報價,我試圖用的mysite/MYAPP一概而論,但應用程序實際上是所謂的「主」 –
請出示您的模板和靜態文件設置。從模板目錄中刪除'os.path.join(BASE_DIR,'main/templates')'時,調試頁面會說什麼目錄?你確定'main'在你的'INSTALLED_APPS'中嗎?您的項目「mysite」實際上是否稱爲「main」? – Alasdair
嗯,我忘了添加'主'到我安裝的應用程序。這解決了模板問題,我不再需要將模板目錄添加到目錄。但是,靜態文件的問題仍然存在。我會爲我的編輯添加幾個可能性 –