2011-03-17 47 views
0

这是我的配置:的Django 1.3 RC1和CSS

project_root 
- (init, urls, settings, manage etc.).py 
- templates 
- - - <html files> 
- - - <css files> 
- - - <images> 
- mainapp 

我settings.py:

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 
... 
STATIC_ROOT = 'c:/static_collect/' 
... 
STATIC_URL = '/static/' 
... 
STATICFILES_DIRS = (
    'c:/django-projects/myproject/mainapp/templates', 
) 
... 
TEMPLATE_DIRS = ('c:/django-projects/myproject/mainapp/templates',) 

我的模板引用与{{STATIC_URL}} style.css中的CSS文件。

一切工作在开发服务器。我查看我的CSS,静态图像和其他一切。

现在我正准备部署一个项目,所以我正在试验一下,然后再购买一个主机。启动manage.py collectstatic并将STATICFILES_DIRS中的所有静态文件正确复制到c:/ static_collect。

我将Debug = False切换为Debug = True。而我的网站不加载样式表。我在这发疯......模板被加载,但静态文件根本无法访问。

你不允许在开发服务器中放置Debug = False吗? 将项目放到真正的生产服务器上后,它会被解决吗? 任何想法?

谢谢你的时间。

+0

你真的配置了Apache(或其他)来提供静态文件从c:/ static_collect /? – 2011-03-17 19:08:16

+0

我只使用捆绑的Django开发服务器。这是我的问题的原因:“您是否允许将Debug = False放入开发服务器?” – daliz 2011-03-17 19:33:18

回答

1

当debug设置为False时,静态文件不会添加到url模式中。见staticfiles/urls.py

if settings.DEBUG and not urlpatterns: 
    urlpatterns += staticfiles_urlpatterns() 

你需要配置Apache来提供文件服务,或者将自己添加的URL模式时,调试是假的(不推荐)。

+0

好的。如果我理解你的答案,你告诉我只在真正的部署情况下关闭调试,对吧? – daliz 2011-03-18 00:01:24

+0

是的,在开发期间关闭调试的唯一时间是测试500页和404页。在这种情况下,您可以手动将urlpatterns添加到您的'urls.py'文件中。 – sdolan 2011-03-18 00:16:23

+0

谢谢。接受答案;) – daliz 2011-03-18 00:39:05