我试图让外部 css 文件在 django 1.3 开发服务器上工作。我阅读了 django 的“管理静态文件”以及许多类似的 SO 问题,但我似乎仍然做错了什么。
为什么我去的时候我的 CSS 样式没有正确显示localhost:8000/page
?
目录结构
myproject
|-- manage.py
|-- settings.py
|-- urls.py
|-- app
|-- __init__.py
|-- models.py
|-- tests.py
|-- views.py
|-- static
|-- css
|-- page.css
|-- templates
|-- app
|-- page.html
我的项目/views.py
import django.http
import django.template.loader
import django.template
def page_function(request):
t = django.template.loader.get_template("page.html")
c = django.template.Context()
return django.http.HttpResponse(t.render(c))
我的项目/urls.py
from django.conf.urls.defaults import patterns, include, url
import myproject.app.views
urlpatterns = patterns('',(r'page/$', myproject.app.views.page_function),)
myproject/templates/app/page.css
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}page.css" />
</head>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>
我的项目/settings.py
(部分)
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
"/home/myusername/Desktop/myproject/app/static",
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)
ROOT_URLCONF = 'myproject.urls'
TEMPLATE_DIRS = (
'/home/myusername/Desktop/myproject/templates/app',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'app'
)