【问题标题】:Django 1.3 rc1 and CSSDjango 1.3 rc1 和 CSS
【发布时间】:2011-07-17 15:47:20
【问题描述】:

这是我的配置:

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

我的设置.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 吗? 一旦我将项目放在真正的生产服务器上,它会解决吗? 有什么想法吗?

感谢您的宝贵时间。

【问题讨论】:

  • 您是否实际配置了 Apache(或其他)以提供来自 c:/static_collect/ 的静态文件?
  • 我只使用捆绑的 Django 开发服务器。这就是我提出问题的原因:“你不允许在开发服务器中放置 Debug=False 吗?”

标签: css django static


【解决方案1】:

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

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

您需要设置 apache 来提供文件,或者在 debug 为 False 时自己添加 urlpatterns(不推荐)。

【讨论】:

  • 好的。如果我理解您的回答,您是在告诉我仅在实际部署时才关闭调试,对吧?
  • 是的,在开发过程中关闭调试的唯一时间是测试500和404页面。在这种情况下,您可以手动将 urlpatterns 添加到您的 urls.py 文件中。
猜你喜欢
  • 1970-01-01
  • 2011-09-28
  • 2015-09-30
  • 2011-08-05
  • 1970-01-01
  • 2012-01-21
  • 2011-09-24
  • 1970-01-01
  • 2011-09-05
相关资源
最近更新 更多