我是django的新手,最近我将django应用程序发送到了生产环境。在我的网站上,我只能看到静态文件,但是媒体是不同的故事。我已经尝试了三天来解决这个问题,但是没有运气。以下是我的设置和nginx设置:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
MEDIA_URL = "/media/"
MEDIA_ROOT = BASE_DIR
server {
listen 80;
server_name myIP;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/make/leosblog;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/sammy/myproject/myproject.sock;
}
}
我在检查html时注意到,媒体文件的路径以'/ media / media / ...'开头,但是,我所有的媒体文件都只在一个媒体文件夹中。不知道这是否是导致此问题的原因。
我该怎么做才能解决此问题?非常感谢。
答案 0 :(得分:0)
在nginx配置中添加媒体文件夹的位置
server {
listen 80;
server_name myIP;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/make/leosblog;
}
location /media/ {
root /media_path;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/sammy/myproject/myproject.sock;
}
}
然后将以下代码添加到urls.py文件中:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_ROOT, document_root=settings.STATIC_ROOT)