学习如何将样式表添加到django站点。添加了我认为我需要的代码,但该网站完全忽略了它。这是我的文件;
urls.py
import os.path
from django.conf.urls.defaults import *
from users.views import *
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
stylesheets = os.path.join(os.path.dirname(__file__), 'stylesheets')
urlpatterns = patterns('',
(r'^$', main_page),
(r'^stylesheets/(?P<path>.*)$',
'django.views.static.serve',
{ 'document_root': stylesheets }),
# Examples:
# url(r'^$', 'chapter6.views.home', name='home'),
# url(r'^chapter6/', include('chapter6.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
)
main_page.html文件
<html>
<head>
<title>The users application</title>
<link rel="stylesheet"
href="/var/chapter6/stylesheets/style.css"
type="text/css" />
</head>
<body>
<h1>The users application</h1>
Here are the users:
<p>{{ username1 }} </p>
<p>{{ username2 }} </p>
<p>{{ username3 }} </p>
</body>
</html>
最后,这是样式表。
body {
font-size: 12pt;
background-color: pink;
}
h1 {
color: red;
}
p {
font-size: 20pt;
}
我已经完成了所有代码十几次并且找不到任何错误。我正在从“django:visual quick pro guide”一书中学习django。所有代码看起来都是正确的。我在书中发现了一些错误。任何帮助将不胜感激。
谢谢, 波比
答案 0 :(得分:1)
您的URLconf映射'/ stylesheets /',但您的HTML正在查看'/ var / chapter6 / stylesheets'。
答案 1 :(得分:0)
这本书于2009年出版(反正没有很好的评论)。自2009年以来, lot 在Django中发生了变化,所以如果我是你,我会寻找另一个起点。不幸的是,目前还没有更多的印刷版Django书籍更新。
开始的最佳位置是online Django book。它与Django的印刷权威指南相同,但随着Django本身的变化不断在线更新。
那就是说,我假设你刚刚开始使用最新版本的Django(当时为1.4)。如果没有,请立即升级。在Django 1.3+中,处理静态文件很简单,只需要以下设置:
STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media')
MEDIA_URL = '/media/'
将django.contrib.staticfiles
添加到INSTALLED_APPS
,可能需要将以下行添加到urls.py
:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
在开发过程中,Django将在static
下的每个应用程序的STATIC_URL
目录中提供任何内容。如果您需要项目范围的资源,请将它们放在另一个目录中,例如“assets”,然后将该目录添加到STATICFILES_DIRS
:
STATICFILES_DIRS = (
os.path.join(os.path.dirname(__file__), 'assets'),
)
当您开始制作时,您的网络服务器将代替Django提供STATIC_ROOT
和MEDIA_ROOT
。出于静态文件的目的,您需要运行:
python manage.py collectstatic
让Django将所有内容复制到STATIC_ROOT
。这仅适用于生产。该目录甚至不应该存在于开发中。
另见: