如何使用Nginx和django提供媒体文件?
晚上好, 我目前面临一个关于我的家庭项目的问题 我与gunicorn和nginx建立了一个django项目 Nginx似乎正常地为我的静态服务,但当涉及到媒体文件时,它不起作用,我的错误日志中显示以下消息:如何使用Nginx和django提供媒体文件?,django,nginx,configuration,gunicorn,Django,Nginx,Configuration,Gunicorn,晚上好, 我目前面临一个关于我的家庭项目的问题 我与gunicorn和nginx建立了一个django项目 Nginx似乎正常地为我的静态服务,但当涉及到媒体文件时,它不起作用,我的错误日志中显示以下消息:failed(2:没有这样的文件或目录) 我尝试为nginx.conf使用不同的用户,但仍然是一样的 我在某处遗漏了一些东西,但我找不到 我附上我的nginx文件(已更新): 更新: 我删除了以下部分: location ~ ^/(images|javascript|js|css|flash|
failed(2:没有这样的文件或目录)
我尝试为nginx.conf使用不同的用户,但仍然是一样的
我在某处遗漏了一些东西,但我找不到
我附上我的nginx文件(已更新):
更新:
我删除了以下部分:
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /home/user/project/test;
expires 30d;
}
并补充说:
location /media {
root /home/user/project/test/media/;
expires 1d;
autoindex on;
}
location /static {
root /home/user/project/test/static/;
expires 1d;
autoindex on;
}
以下是my settings.py的示例:
ALLOWED_HOST = my_server_ip
PROJECT_ROOT = os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')
MEDIA_URL = '/media/'
更新:
以下是我的nginx错误日志示例:
[错误]11475#11475:*1 open()“/home/user/project/test/media/media/size/products/picture.JPG”失败(2:没有这样的文件或目录),客户端:一些客户端ip,服务器:我的服务器ip,请求:“GET/media/size
你知道它是从哪里来的吗?(我很确定这是件愚蠢的事=/)您忘记了为Nginx conf文件指定媒体部分,您也应该为静态文件指定媒体部分
server {
....
# There is for media, Put your path here :)
location /media {
autoindex on;
alias /home/myusername/myproject/media/;
}
....
}
嗨,UserGraund,我用你提到的解决方案更新了我的conf文件。Nginx仍然不提供媒体文件(例如,我的媒体文件夹中的图像)/home/user/project/test/media/media/sized/products/picture.JPG-您可以发送更新的Nginx conf吗?我更新了我的Nginx conf,如下所示。它显示在我的问题中。请尝试从路径中删除媒体,因为它正在这里查看
/home/user/project/test/media/media/
,并且应该在/home/user/project/test/media/
中查看。我发现了真正的问题。首先我在看nginx,因为当我在媒体目录中查看时,一切都很好。我很高兴知道我的错误在哪里。所以我设置DEBUG=True,我看到了需要看到的内容。。。呃,13号。我设置了一个有足够权限的用户,它工作了。。。结论DEBUG=True即使在生产环境中也有帮助(我以前没有为生产环境设置服务器,我比以前更笨…)
server {
....
# There is for media, Put your path here :)
location /media {
autoindex on;
alias /home/myusername/myproject/media/;
}
....
}