我的2个Django应用程序在mysite.com和mysite.com/app2上与Nginx和Gunicorn一起运行。
App1的媒体文件运行正常。对于app2与DEBUG = False的尝试下载媒体文件时,我得到404,尽管它为文件创建的URL是正确的(与服务器上的目录匹配) 。
来自nginx错误日志,我发现它可能正在app1的媒体目录中寻找它。
如何使app2在正确的目录中查找媒体?
Nginx日志错误:
* 2020/06/09 13:24:51 [错误] 9378#9378:1 open()“ /home/user/app1/media/attach_1/attach.pdf”失败(2:无此类文件或目录),客户端:134.94.7.210,服务器:mysite.com,请求:“ GET /media/attach_1/attach.pdf HTTP / 1.1”,主机:“ mysite.com”,引荐来源网址:“ mysite.com/app2/”
Nginx conf:
server {
listen 80;
server_name server_domain;
location = /favicon.ico { access_log off; log_not_found off; }
location = /static/ {
root /home/user/app1;
}
location = /app2/static/ {
root /home/user/app2;
}
location = /media/ {
root /home/user/app1;
}
location = /app2/media/ {
root /home/user/app2;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/app1.sock;
}
location /secondapp/ {
include proxy_params;
proxy_pass http://unix:/run/app2.sock:/;
}
}
app2.settings:
STATIC_URL = '/static/'
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = 'media/'
我也有urlpatterns = [...] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
对于app2,您是否应该不更改媒体和静态URL以指向服务器上app2的URL?