静态文件状态'404

时间:2014-08-28 22:24:56

标签: django heroku

我使用 heroku 来托管我的Django(1.6)应用(称为' Zen ')。问题是静态文件没有显示。换句话说,我的应用程序中没有CSS和JS,因为它没有找到这些文件。我在这里查看了其他问题,并将我的应用配置如下:

Settings.py

##### Static asset configuration #####
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

urls.py:

from django.conf.urls.static import static
from zen import settings

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL,
                          document_root=settings.STATIC_ROOT)

urlpatterns += patterns('',
        (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
    )

wsgi.py

import os
from django.core.wsgi import get_wsgi_application
from dj_static import Cling

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "zen.settings")
application = Cling(get_wsgi_application())

显然,在使用git push heroku master推送我的应用后,所有功能都很好:

-----> Preparing static assets Running collectstatic... 69 static files copied to '/app/staticfiles'.

但是你可以看到我的应用程序中没有CSS(http://obscure-reef-8874.herokuapp.com/)。我查看了应用程序的日志,大多数css和js文件都处于404状态......我尝试了一切,你能帮助我吗?

编辑:

我没有找到错误,我重新创建了一个应用程序,它很简单。

2 个答案:

答案 0 :(得分:0)

设置

STATIC_ROOT = 'static' 

试 可能由不同的STATIC_ROOT和STATICFILES_DIRS

引起

答案 1 :(得分:0)

问题不在于您的静态文件服务:这很好,因为您可以看到是否转到管理应用程序:http://obscure-reef-8874.herokuapp.com/admin/。 / static / admin /下的文件没有问题。

如果没有看到应用程序的结构以及模板中输出静态链接的方式,很难提供帮助,我猜你的文件位于/ static /的子目录中,所以你需要引用那个子目录在模板中资产的链接中。

请注意,您应该从urls.py中删除其他静态网址格式。当DEBUG为False时,它们不起作用。您的文件由Cling提供,它位于Django外部。