【发布时间】:2016-04-15 16:03:44
【问题描述】:
我检查了相同的问题并发现了一些提示,但它们都不起作用。 在调试模式下,一切都像一个魅力。您可以使用 www 地址访问文件,用户可以上传图片。 现在我关闭了调试,起初我只是在关闭调试的情况下使用调试设置。上传仍然有效,但无法通过 www 加载图片(404 错误)。然后我将其更改为实时设置,现在上传不起作用,并且 media_root 文件不通过 www 提供。
我检查了我的服务器并将访问权限更改为读写,没有帮助。
知道如何解决这个问题吗?
settings.py 调试:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static_in_pro", "static_root")
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static_in_pro", "our_static"),
#'/var/www/static/',
)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "static_in_pro", "media_root")
settings.py 直播:
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/vhosts/bspotted1/app/static_in_pro/static_root/'
STATICFILES_DIRS = (
'/var/www/vhosts/bspotted1/app/static_in_pro/',
#'/var/www/static/',
)
MEDIA_URL = '/media/'
MEDIA_ROOT = '/var/www/vhosts/bspotted1/app/static_in_pro/media_root/'
urls.py:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
【问题讨论】:
-
在生产环境中,您应该从 nginx 或 apache 等网络服务器提供 STATIC_ROOT 目录,但为什么要尝试从 Django 提供它们?你的平台有什么限制吗?
-
除了 Paulo Scardines 的回答,检查你是否在你的 urls.py 中配置了`+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)`
-
@PauloScardine 这是一个 apache 服务器,还是我想念一些东西,它们是通过目录提供的?用我的 urls.py 更新了我的帖子。我认为没有任何限制。
-
请查看 Django 文档中的Serving files 部分。
-
@PauloScardine 托管服务更改了 Conf 文件,现在如果我关闭调试,则没有任何效果。甚至没有静态文件。
标签: django django-settings django-staticfiles