2014-11-24 105 views
0

請幫我查一下我的static設置Django的靜態文件的URL設置

Debug =False,它工作得很好
但當Debug=True,它不能捕捉靜態文件

請幫幫我,謝謝。

這裏是我的settings.py:

DEBUG = False 
TEMPLATE_DEBUG = True 
ALLOWED_HOSTS = ['*'] 
STATIC_URL = '/static/' 
STATIC_ROOT = 'static' 
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] 

urls.py

from django.conf import settings 
urlpatterns = patterns('', 
    url(r'', include('core.urls', namespace='core')), 
) 
if settings.DEBUG is False:  
    urlpatterns += patterns('', 
      url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}), 
    ) 
else: 
    from django.conf.urls.static import static 
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 
+0

沒有必要爲一個else語句。在調試模式下,應該自動提供靜態文件。 – pad 2014-11-24 04:54:56

+0

我刪除了其他部分,但仍然不起作用 – user2492364 2014-11-24 05:08:16

+0

作爲@pad說調試模式靜態文件自動服務..你有'中間件類'列出'settings.py'文件 – 2014-11-24 05:19:43

回答

1

如果將在urls.py寫下面的代碼將兩個調試狀態

工作
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT }), 

和一件要注意的事情我的靜態根就像django 1.4+

PROJECT_DIR = os.path.dirname(os.path.dirname(__file__)) 
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static') 

與此相伴,你需要做以下命令將所有的靜態文件複製到PROJECT_PATH /靜態DIR

python manage.py collectstatic