我有一个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