2016-01-11 43 views
0

我檢查了相同的問題,發現一些提示,但他們都沒有工作。 在調試模式下,一切都像一個魅力。您可以使用www地址訪問文件,用戶可以上傳圖片。 現在我關閉了調試,起初我只是在調試關閉的情況下使用調試設置。上傳仍然有效,但圖片無法通過www加載(404錯誤)。然後我將其更改爲實時設置,現在上傳不起作用,media_root文件不通過www提供。Django生產問題服務媒體根文件

我檢查了我的服務器,並改變了寫入讀取訪問,沒有幫助。

關於如何解決這個問題的任何想法?

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) 
+0

在生產中,你應該從像nginx或apache這樣的webserver服務STATIC_ROOT目錄,你爲什麼要從Django服務它們?您的平臺是否有任何限制? –

+0

除了Paulo Scardines的回答,請檢查您是否在您的urls.py –

+0

@PauloScardine中配置了'+ static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)'這是一個apache服務器,或者我想念一些東西,通過目錄服務?用我的urls.py更新了我的帖子。我不認爲有任何限制。 – dk1990

回答

0

您需要配置您的Web服務器提供靜態和媒體文件。

Django不是爲了服務他們。相反,Django只會引用STATIC_URL和MEDIA_URL前綴來查找/上傳文件。

在調試模式下,運行一個web守護程序來臨時存放不應該在生產中使用的文件。