vue.js - 如何链接到 SPA 网址?
问题描述
我有一个单页 Vue 应用程序,它使用 URL 的哈希历史记录(即https://www.myapp.com/#/sign-up)。我有另一个使用 Wagtail 作为 CMS 工具的网站,它试图使用锚标记链接到我的 vue spa,但它似乎不起作用。带有锚标签的网站是使用 jQuery 使用预制主题构建的。
<a class="btn btn-sm btn-primary transition-3d-hover" href="https://www.myapp.com/#/sign-up">
我希望单击该链接会将我带到我的注册页面,但没有任何反应,单击该链接时,我会在控制台日志中看到:
Uncaught Error: Syntax error, unrecognized expression: #/sign-up
at Function.oe.error (jquery.min.a2530ed98bf8.js:2)
at oe.tokenize (jquery.min.a2530ed98bf8.js:2)
at oe.select (jquery.min.a2530ed98bf8.js:2)
at Function.oe (jquery.min.a2530ed98bf8.js:2)
at Function.e.find (jquery-migrate.min.05689c22f0c8.js:59)
at w.fn.init.find (jquery.min.a2530ed98bf8.js:2)
at e.fn.init.w.fn.init (jquery.min.a2530ed98bf8.js:2)
at new e.fn.init (jquery-migrate.min.05689c22f0c8.js:43)
at w (jquery.min.a2530ed98bf8.js:2)
at HTMLAnchorElement.<anonymous> (scroll-nav.787831ada42e.js:16)
导航到 URL https://www.myapp.com/#/sign-up确实按预期工作,只是不是通过单击链接。我对前端开发比较陌生,并且对可能导致问题的原因感到迷茫。
解决方案
不要使用 hashbang 导航,因为它自 2015 年以来已被弃用。而是使用 VueRouter 摆脱你的 hashbang 并配置你的服务器端应用程序以将所有路由重定向到/
,让 Vue 处理路由。
const router = new VueRouter({
mode: 'history'
})
推荐阅读
- python - 在py3中安装mysqlclient时出错
- amazon-web-services - saml 2.0 身份提供商 AWS IAM 无法解析元数据
- apache-nifi - Nifi-将文件路由到两个不同的目录
- php - Codeigniter 不显示以用户名记录的当前会话
- c - 如何动态分配二维对齐数组?
- xamarin - 在 Xamarin 中导航到 NavigationPage 的倒数第二页?
- ios - 按下时是否可以更改单元格的大小为屏幕大小
- html - CSS自定义工具提示字体真棒图像消失
- r - ggplot:限制单个方面的轴限制/中断
- python-3.x - 为什么 split() 从一个字符串返回两个列表?