django - 错误:在此服务器上未找到请求的 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 仅Debug=True
在以调试模式在本地运行应用程序时才提供媒体文件。
这意味着使用上述设置,您无法在生产中提供媒体文件。
解决方案:
- 要么你使用一些云服务,比如 Amazon S3。
- 你配置你的服务器Apache/Nginx来处理媒体文件。
推荐阅读
- firebase - 有什么方法可以在 Firebase Cloud Functions 中使用 Cordova 插件?
- swift - 对变量值感到困惑?
- c++ - 如何访问受保护进程的 .exe 地址?
- java - 在社交媒体网站上提及时的主要网站图片
- regex - SED - 如果匹配,则在 1 行之前和 2 行之后删除
- c++ - GCC C++ 错误?(T)x 匹配 X::operator const T&() const 与 clang 的不同
- telerik - 使用 Telerik 控件将数据库 UTC 时间戳呈现为本地
- spring-boot - 在 Thymeleaf 中访问枚举
- python - 如何在 python 中调整图像大小以进行机器学习?
- domain-driven-design - 聚合根中覆盖的实体如何保存在 DDD 中?