【发布时间】:2021-03-22 13:23:50
【问题描述】:
我正在尝试在我的 Django 项目中使用 Vue 创建一个 SPA,以便 Django 仅处理身份验证模板,而前端的其余部分完全由 webpack-loader 呈现 Vue,因此它是 Django 呈现 Vue 应用程序。我这样做是为了不失去完全由 Django 处理身份验证的好处。
因此,/accounts/ 以下的所有内容都将由 django 视图呈现的 Django 模板处理,而/app/ 以下的所有内容都将由 Vue 应用程序处理。
我有以下几点:
urlpatterns = [
# Some standard django templates url here for authentication..
# ...
# The Vue app:
path('app/', views.vueApp, name='vueApp'),
]
所以当用户导航到mysite.com/app 时,Vue 会将整个前端作为 SPA 及其路由处理:
//main.js
const router = new VueRouter({
base: '/app',
mode: 'history',
routes: [
{ path: '/', component: Home },
{ path: '/test1', component: testcomponent },
{ path: '/test2', component: test2component }
]
})
我的代码的问题在于,如果我从 Vue 应用程序内部单击指向test1 或test2 的链接,我将被重定向到testcomponent (@987654330 @) 和test2component (mysite.com/app/test2);相反,如果我打开浏览器并直接导航到mysite.com/app/test1 或mysite.com/app/test2,我会收到 Django 的“找不到页面”错误,我认为是因为 Django 认为我正在尝试访问标准的 Django url,而我却'我试图访问由我的 Vue 应用处理的 URL。
有没有办法解决这个问题?提前致谢!
【问题讨论】: