Django静态文件未在部署中加载

时间:2016-10-20 00:56:33

标签: django django-staticfiles django-deployment

我现在已经在这里待了大约3个小时,而且我完全失去了并且在圈子里奔跑。我试图让我的静态和媒体文件部署。

我的设置文件如下所示:

{{1}}

我运行了collectstatic,我的静态文件位于/ home / huhu / webapps / eng30_static_media / static我仍然不知道如何处理媒体文件。我在这里错过了什么?我目前没有通过管理面板显示的静态js,静态img,静态CSS或媒体。

2 个答案:

答案 0 :(得分:0)

如果您使用的是nginx,则应将以下位置添加到服务器块

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

因为DEBUG设置为False,所以django不会像在dev服务器上那样为生产中的静态文件提供服务。这是设计原因,因为正如文档所述,静态文件应用程序非常低效并且可能不安全:https://docs.djangoproject.com/en/1.10/howto/static-files/

答案 1 :(得分: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并将静态根更改为

STATIC_ROOT = '/var/www/static'

使用ls -l

检查文件的权限/所有权
ls -l
-rw-r--r-- 1 www-data www-data 11321 Jul 28 17:08 index.html

for apache user/group www-data/www-data必须能够访问需要通过服务器提供的文件。如果文件归其他人所有,请在文件/目录上尝试chown以更改所有权。

chown -R chown -R username:group directory

如果你使用的是nginx,那么define your static files directory in nginx conf并尝试重新加载页面。