1

我已经做了大约 3 个小时了,我完全迷失了方向,并且在原地转圈。我正在尝试将我的静态和媒体文件投入部署。

我的设置文件如下所示:

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/huhu/webapps/eng30_static_media/static 我仍然不知道如何处理媒体文件。我在这里想念什么?我目前没有通过管理面板显示的任何静态 js、静态 img、静态 css 或媒体上传。

4

2 回答 2

1

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

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

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

于 2016-10-20T03:16:26.803 回答
1

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

您必须让您的网络服务器提供文件。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

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

chown -R chown -R username:group directory

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

于 2016-10-20T04:51:56.187 回答