2017-05-27 66 views
1

我有一個Django 1.8.4網站與Django CMS 3.1.3。通過djangocms-picture插件,我希望編輯能夠將圖像上傳到網站。如果我上傳的圖像使用這個插件的網頁上,圖像中的服務器上的以下文件夾結束:Django CMS - 鏈接上傳圖像返回404

[PATH_TO_APP_ROOT]/media/cms_page_media/8/

其中「8」是頁面的ID。當我瀏覽頁面時,對圖像的鏈接給出

https://[MY_SITE]/media/cms_page_media/8/my_image.png

但這個鏈接是不正確的,我得到一個404,我有一個很難搞清楚什麼我失蹤,但它似乎應該更改一些網址設置。

在settings.py我:

MEDIA_ROOT = os.path.join([PATH_TO_APP_ROOT], "media") 
MEDIA_URL = "/media/" 

哪裏[PATH_TO_APP_ROOT]相同上面給出。我沒有改變任何媒體設置given in the Django CMS docs,所以他們都應該是默認的。我很困惑,服務器查找/media/cms_page_media/8/my_image.png中的圖像,因爲cms_page_media-這個URL的一部分來自CMS_PAGE_MEDIA_PATH,它不是URL設置(?)。我需要尋找什麼設置來糾正這個問題?

請注意,在DEV(本地)中,一切都適用於我 - 問題僅在生產服務器上。

+1

應用程序根也是Web服務器的根?如果DEBUG關閉,django將不會提供靜態或媒體文件,而是讓apache/nginx web服務器直接處理它們。這意味着您必須將媒體根指向由Web服務器處理的文件夾,並設置服務器的配置以將此文件夾的內容視爲靜態內容。 – mch

回答

0

終於有時間來看看這個問題:問題是web服務器(pythonanywhere)配置不正確。在他們的管理工具中,我必須指定媒體文件夾的路徑。當我這樣做時,它工作,而不必更改任何Django設置。

更多的信息在這裏:https://help.pythonanywhere.com/pages/DjangoStaticFiles