【发布时间】:2012-06-17 12:20:20
【问题描述】:
以前有人问过类似的问题,我已经阅读了所有这些问题并试图理解有关该主题的官方 django 文档,但我仍在努力在虚拟服务器上使用静态文件。更具体地说,我只是想让我的模板Base.html 使用base.css.
我的文件夹结构如下:
manage.py
static/CSS/base.css
VergeGreenITEvent_Website/settings.py
VergeGreenITEvent_Website/views.py ect
VergeGreenITEvent_Website/Webpage_Templates/Base.html
(目前没有应用文件夹,因为我正在关注“The django book”来学习并且还没有做到这一点!)
完整的 settings.py 可以在这里查看:http://pastebin.com/JB3mKRcJ
在我的 Base.html 模板中,我现在有了代码:
<head>
<title>Verge Green IT</title>
{% load static %}
<link rel="stylesheet" href="{% static "CSS/base.css" %}" type="text/css" />
</head>
CSS 仍然没有被应用。 你能帮我弄清楚我做错了什么吗?我将不胜感激。
我正在使用最新版本的 Django。 (1.4)
urls.py:
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
import views
urlpatterns = patterns('',
url(r'^$', views.Home),
)
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns() #this serves static files and media files.
#in case media is not served correctly
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
}),
)
【问题讨论】:
-
STATIC_URL 应该是 "/static/" 我会避免在您的目录命名中使用大写字母,请发布您的网址
-
@ArgsKwargs ,感谢我将其更改为 /static/。你的意思是文件urls.py?好的!但我不确定它会告诉你很多吗?正确的视图加载正常,html 就在那里,只是没有样式。
-
在STATICFILES_DIRS = ( ... )之后的设置中添加print STATICFILES_DIRS,运行项目时会显示什么。在您的模板中 {% static "CSS/base.css" %} 生成的链接是什么?
-
如果你正在使用新的 django 项目布局,其中设置位于项目的子目录中,你需要使用@noirbizarre 他的 PROJECT_ROOT 定义(使用 '..' 上一层)
-
您不能在这样的样式表中使用 django 过滤器,您必须使用硬编码路径或浏览 stackoverflow 以获得动态样式表解决方案
标签: css django static-files django-staticfiles