2016-10-10 72 views
0

我的网站部署在Heroku上。除静态文件外,一切都进展顺利。 静态文件在这条路上doctor_app/doctor_app/static/Heroku静态文件不能用于django admin +文件未找到+ 404

在本地,django的管理面板工作正常。但在heroku上,它没有找到任何静态文件。

令人惊讶的是,当我与终端运行此命令。

heroku run cat doctor_app/static/admin/css/base.css 

它输出base.css的内容。这意味着有静态文件

我想知道为什么django没有找到任何文件?

欲了解更多信息,这里是我的settings.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') 
#STATIC_URL = '/static/' 

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'staticfiles'), 
) 

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

STATIC_URL = '/static/' 
+0

你执行过“python manage.py collectstatic”吗? –

+0

是的,我做到了。 @VijeshVenugopal –

+0

@AdilMalik通过“它找不到任何静态文件”你是否说他们返回一个404错误?如果是这样,你如何链接到你的模板中的静态文件?另外,请将您的'settings.py'变量发布到静态文件,例如'STATICFILES_DIRS'等。 – YPCrumble

回答

3

这不是一个Django的错误。 django所做的就是准备好静态文件并将它们收集到STATIC_ROOT中,这些都是你的情况。

请注意,为django项目提供静态文件通常不在django的责任范围内。您可以参考django's doc on deploying static files并尝试使用诸如uwsginginx之类的应用部署它们。

对于一个快速的尝试,你可以追加静态文件到djanog的路由,如所描述here:从django.conf导入设置 从django.conf.urls.static进口静态

urlpatterns = [ 
    # ... the rest of your URLconf goes here ... 
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

至于你的问题已经提供,这可能适用于你。

+0

这帮了我很多!谢谢 –