我有一個Django web應用程序,並且正在爲我的前端使用ReactJS。我的應用程序想要在本地開發(包含我的音樂文件的文件夾)以及生產(服務器上的文件系統)時檢索本地音樂文件。兩者都有不同的路徑,所以我對dev和prod有不同的設置。從ReactJS前端訪問Django MEDIA_URL和MEDIA_ROOT setting.py值
我設置
MEDIA_ROOT = os.path.join(BASE_DIR, 'music') # on dev env
MEDIA_URL = '/media/'
其中, 「音樂」 是包含文件的文件夾我的。
我加
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我urls.py但當ReactJs被渲染它的治療是變量只是一個字符串的組件,而不是讓我設置
<audio src={"{{ MEDIA_ROOT }}" + props.audio}></audio>
其中props.audio是文件的路徑。
我還添加了
django.core.context_processors.media
到模板在我的settings.py,但它仍然無法正常工作
然而,當我在網址欄中輸入「本地主機:8000 /媒體/路徑/ to/music.wav',我可以看到該文件。
有關如何從我的JavaScript獲取MEDIA_URL和MEDIA_ROOT值的任何想法?或者我必須打電話給我的Django後端來檢索這些值,每次我渲染組件?
我沒有使用任何模型雖然,那會是接近的最好方式它?爲這些文件創建一個模型? – user3226932
@ user3226932你可以顯示什麼是props.audio,你如何將它傳遞給模板?我想問題是Django不能解析這個'{「{{MEDIA_ROOT}}」+ props.audio}'作爲url。你可以在視圖中進行字符串連接並將結果傳遞給模板嗎? – neverwalkaloner
我想這就是問題所在。我沒有將它傳遞給Django模板,我使用ReactJS來呈現視圖,而不是Django,無論哪種方式,我認爲我必須調用django後端來獲取這些值? – user3226932