2014-11-24 119 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