2011-03-17 58 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