Django生产问题服务媒体根文件

时间:2016-01-11 11:08:10

标签: django django-settings django-staticfiles

我检查了同样的问题并找到了一些提示但是没有一个有效。 在调试模式下,一切都像魅力一样。您可以使用www地址访问该文件,用户可以上传图片。 现在我关闭了调试,起初我只是在关闭调试的情况下使用调试设置。上传仍然有效但图片无法通过www(404错误)加载。然后我将其更改为实时设置,现在上传不起作用,media_root文件不通过www提供。

我检查了我的服务器并更改了写入读取的权限,没有帮助。

有关如何解决这个问题的想法吗?

settings.py debug:

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 live:

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)

1 个答案:

答案 0 :(得分:0)

您需要配置您的网络服务器以提供静态和媒体文件。

Django并不打算为他们服务。相反,Django只会引用STATIC_URL和MEDIA_URL前缀来查找/上传文件。

在调试模式下,运行一个Web守护程序来临时为服务器提供服务,这些文件不应该在生产中使用。