媒体文件未在 Debug False 上显示
Media files not showing on Debug False
我刚刚用 pythonanywhere 部署了一个站点,当我将 DEBUG
模式设置为 False
时,我的媒体图像消失了,找不到我的媒体文件夹的路径。我在问自己是什么导致了这个问题,我该如何解决它?
以下是我配置设置的方式:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
urls.py
urlpatterns = [
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
您看到的行为是设计使然,Django 在生产模式下不提供静态文件。使用 Python 服务许多可能非常大的静态文件会给服务器带来很大压力,而任何常见服务器都可以轻松处理。
因此您需要自己使用 Apache 或 nginx 为它们提供服务:https://docs.djangoproject.com/en/1.10/howto/static-files/deployment/
找到了,使用 pythonanywhere 我必须像这样在静态文件处理程序上设置媒体:
路径: /media/
目录: /home/<myusername>/<myproject>/media
然后将DEBUG
设置为False
后重新加载域名。
我刚刚用 pythonanywhere 部署了一个站点,当我将 DEBUG
模式设置为 False
时,我的媒体图像消失了,找不到我的媒体文件夹的路径。我在问自己是什么导致了这个问题,我该如何解决它?
以下是我配置设置的方式:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
urls.py
urlpatterns = [
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
您看到的行为是设计使然,Django 在生产模式下不提供静态文件。使用 Python 服务许多可能非常大的静态文件会给服务器带来很大压力,而任何常见服务器都可以轻松处理。
因此您需要自己使用 Apache 或 nginx 为它们提供服务:https://docs.djangoproject.com/en/1.10/howto/static-files/deployment/
找到了,使用 pythonanywhere 我必须像这样在静态文件处理程序上设置媒体:
路径: /media/
目录: /home/<myusername>/<myproject>/media
然后将DEBUG
设置为False
后重新加载域名。