首页 > 解决方案 > 错误:在此服务器上未找到请求的 URL /media/

问题描述

我在 pythonanywhere 上使用 Django 来创建一个 webapp。我正在尝试通过访问http://thedstrat94.pythonanywhere.com/media/example.png来访问我的媒体文件夹中的文件。我只收到“未找到”错误

我在 urls.py 中的 Url Patterns 看起来不错:

urlpatterns = [
    path('admin/', admin.site.urls), #url(r'^admin/', admin.site.urls),
    path('', views.index, name = "index"),
    path('about/',views.about,name = "about"),
    path('articles/',include("article.urls")),
    path('user/',include("user.urls")),
]
urlpatterns += static(settings.MEDIA_URL, 
document_root=settings.MEDIA_ROOT)

我的 settings.py 文件看起来不错:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

标签: django

解决方案


Django 不是在生产环境中提供媒体文件的。

Django 仅Debug=True在以调试模式在本地运行应用程序时才提供媒体文件。

这意味着使用上述设置,您无法在生产中提供媒体文件。

解决方案:

  1. 要么你使用一些云服务,比如 Amazon S3。
  2. 你配置你的服务器Apache/Nginx来处理媒体文件。

推荐阅读