[英]Django admin panel MEDIA_URL and db url
我已經將網站從服務器移植到另一天前。 現在,我需要完成端口,在新服務器中更新數據庫。
我已經做到了,但出現一個奇怪的錯誤。 它沒有顯示圖像。
在數據庫中,圖像字段包含https://www.domain.ext/media/uploads/homepage/image_name.jpg
但在管理面板中,URL不是這樣的,就像MEDIA_URL
(在settings.py文件中設置)和數據庫中的圖片字段,因此,如果將MEDIA_URL
設置為https://www.domain.ext/media/
,則在管理面板的圖片字段中,我將看到https://www.domain.ext/media/https://www.domain.ext/media/uploads/folder/image_name.jpg
。
我試圖手動修改db中的鏈接,僅/uploads/folder/image_name.jpg
,刷新了管理頁面,看起來還可以,但是保存后,又是一次錯誤的形式。
誰這么善良地向我解釋原因,以及如何進行管理?
編輯:
Django版本是1.2.5
我看到的另一個問題是,如果MEDIA_URL
有http
, MEDIA_URL
其行為與我所解釋的相同。 如果有https
則網址變為/https:/www. ...etc...
/https:/www. ...etc...
對於后者,我嘗試將u
放在MEDIA_URL
字符串之前,例如MEDIA_URL = u"text"
但是它不起作用。
終於我有了問題!
問題出在filebrowser
模塊中。
在filebrowser/functions.py
有一個名為url_join
的方法,其定義如下:
def url_join(*args):
"""
URL join routine.
"""
if args[0].startswith("http://"):
url = "http://"
else:
url = "/"
for arg in args:
arg = arg.replace("\\", "/")
arg_split = arg.split("/")
for elem in arg_split:
if elem != "" and elem != "http:":
url = url + elem + "/"
# remove trailing slash for filenames
if os.path.splitext(args[-1])[1]:
url = url.rstrip("/")
return url
我只是在有http
s
地方添加了s
,所以現在它是https
且可以使用。 它在db中寫入正確的內容,並且還以正確的方式呈現url。
感謝大家的幫助! :)
編輯:
祝大家聖誕節快樂! :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.