Django URL到模板视图阻止媒体文件夹显示



我一直在处理Django DRF/Vue项目,遇到了从媒体文件夹下载或查看文件的问题。我在设置中将其设置为媒体根目录,并在我的url.py文件中包含以下内容:

if settings.DEBUG:
urlpatterns += static(
settings.STATIC_URL,
document_root = settings.STATIC_ROOT
)
urlpatterns += static(
settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT
)

这个问题发生在我的模板视图路径上。

re_path(r"^.*$", IndexTemplateView.as_view(), name="entry-point")

如果我评论这一行,媒体目录会按照我的意愿运行,但这会导致我的应用程序不再将用户引导到我的前端和Django模板文件。我是Django的新手,不知道该如何解决这个问题,或者是否有可能在路径中创建一个条件来排除/media被触发?

编辑:通过将re_path(r"^.*$", IndexTemplateView.as_view(), name="entry-point")更改为path('', IndexTemplateView.as_view(), name="entry-point"),我可以在一定程度上实现这一点。我的应用程序目前在8000端口上运行Django,在8080端口上运行Vue应用程序。我从8080访问应用程序前端,这允许它在必要时重定向到登录页面。如果我试图用这个更新的配置刷新任何页面,我将面临错误,";Django使用app.urls中定义的URLconf尝试了以下URL模式,顺序如下:";。。。它显示了我的api URL列表。我发现Django的URL模式是学习这个框架时最令人困惑的事情之一。有人能向我解释一下是什么原因造成的吗?

我在这个问题上纠结了很长时间,终于想明白了。当然,这是一个非常简单的解决方案。在将"re_path"更改为"path"后,我所要做的就是将Vue路由类型更改为hash,而不是history。

最新更新