【问题标题】:Django Media File is not found on production (404)在生产中找不到 Django 媒体文件 (404)
【发布时间】:2021-07-30 12:36:06
【问题描述】:

我想知道很多其他 stackoverflow 问题是否有解决方案,但我无法解决它。那么问题来了:

Nginx.conf

  location /media/  {
        alias /root/server/media/;   
 }

   
  location /static/ {
        alias /root/server/static/;
    }

urls.py

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static/'),)
STATIC_ROOT = os.path.join(BASE_DIR, '/static/')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

wsgi.py

application = WhiteNoise(application, root=os.path.join(BASE_DIR, 'static'))
application = WhiteNoise(application, root=os.path.join(BASE_DIR, 'media'))

我已根据需要设置了所有内容,我检查了目录(根/服务器/媒体)和图像。但是当我输入链接时: $serverlink/media/images/1.png ,它给了我 404(未找到)错误。有人知道为什么吗?

更新:

【问题讨论】:

  • 什么是root?程序的根目录,还是文件系统的 root 目录?
  • 我的文件系统目录 (root/django_project)
  • 但它是 root 目录吗?所以它有 no 父目录?
  • 你可以在更新中看到它。
  • 你想用 Nginx 还是 Django 管理静态和媒体内容?你试过没有 Nginx conf 的位置吗?

标签: django nginx


【解决方案1】:

您可以尝试删除媒体后的尾部斜杠吗?

location /media { alias /root/server/media; }

【讨论】:

    猜你喜欢
    • 2019-05-06
    • 2016-07-16
    • 2017-10-30
    • 2011-07-23
    • 1970-01-01
    • 2020-02-15
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多