2016-10-20 76 views
0

我一直在这里工作了大约3个小时,而我完全迷失了,并且在圈子中运行。我试图让我的静态和媒体文件进入部署。Django静态文件无法在部署中加载

我的设置文件看起来像这样:

DEBUG = False 

... 

STATIC_ROOT = '/home/huhu/webapps/eng30_static_media/static' 
MEDIA_ROOT = '/home/huhu/webapps/eng30_static_media/media' 

STATIC_URL = '/static/' 
MEDIA_URL = '/media/' 

我已经运行collectstatic和我的静态文件在/ home /乎乎/ webapps /下eng30_static_media /静态我仍然不知道该怎么办与媒体文件。我在这里错过了什么?我目前没有任何静态js,静态img,静态css或通过管理面板显示上传的媒体。

+0

没什么。一旦你通过你的网站或管理员上传了一些东西,MEDIA_ROOT目录就会被创建并保存在那里。 –

+0

您应该提供更多的上下文,什么是您的服务器类型,部署方法,什么Web服务器? – Selcuk

+0

查看http://djangodeployment.com/2016/10/18/checklist-for-django-settings-on-deployment/,并在'/var/log/nginx/error.log中检查Web服务器日志文件。 '或'/ var/log/apache2/error.log'。 –

回答

0

如果您正在使用nginx的,你想补充以下位置到您的服务器块

location /static/ { 
    root /home/huhu/webapps/eng30_static_media; 
} 

因为你DEBUG设置为False,Django会不会服务于staticfiles您在生产喜欢它在你的开发服务器上。这是设计原因,因为正如文档所述,静态文件应用程序效率非常低,可能不安全:https://docs.djangoproject.com/en/1.10/howto/static-files/

0

打开浏览器控制台并查看获取静态文件时返回的响应。

你必须让你的网络服务器提供文件。 Make sure that your web server (apache/nginx) have proper permissions to access the static directory,你的情况'/ home/huhu/webapps/eng30_static_media/static'。 如果您仍然会面临的问题,然后move static files to /var/www/static directory if you are using apache和使用ls -l

ls -l 
-rw-r--r-- 1 www-data www-data 11321 Jul 28 17:08 index.html 

为Apache user/group www-data/www-data必须对文件的访问,需要改变你的静态根

STATIC_ROOT = '/var/www/static' 

检查权限/所有权上的文件通过服务器提供服务。如果文件由其他人拥有,请在文件/目录上尝试使用chown以更改所有权。

chown -R chown -R username:group directory 

如果您使用nginx,然后define your static files directory in nginx conf并尝试重新加载页面。