settings.py中的静态和媒体配置
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'frontend','build', 'static')
]
MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR, 'media')
urls.py
from django.contrib import admin
from django.urls import path, include, re_path
from django.views.generic import TemplateView
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
re_path('', TemplateView.as_view(template_name='index.html')),
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
在这里,我将Django与reactjs一起使用。
我已经在类似的app中给出了build文件夹的路径。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'frontend','build')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
当我要去http://127.0.0.1:8000/media/images_OkG6q2k.jpeg路径以获取图像时 在用户上传的侧面媒体文件夹中,我正在获取反应路线页面。 我没有从媒体文件夹中获取图像。
我如何通过url查看媒体照片。
react home is coming instead media image like this when i amgoing url
答案 0 :(得分:0)
我认为我只是使用Django后端+ React前端项目克服了这个问题。它在您的网址格式中。
据我所知,这种包罗万象的模式:
re_path('', TemplateView.as_view(template_name='index.html'))
本质上会覆盖您编写的媒体URL模式(及其下的任何其他URL),这会阻止Django后端允许您访问媒体文件。要解决此问题,只需确保“包罗万象”路线是您模式中的最后一条。完成其余模式后,在新行上执行以下操作:
urlpatterns += [re_path('', TemplateView.as_view(template_name='index.html'))]
这样,您将其添加到所有其余路径之后,并且不会“阻止”其他任何路径。希望能解决这个问题!