Javascript mac(本地主机)上的vue路由器历史记录模式在直接访问时引发错误
我正在本地主机开发上测试vue路由器的历史模式,当我尝试直接访问URL时出错:Javascript mac(本地主机)上的vue路由器历史记录模式在直接访问时引发错误,javascript,macos,vue.js,vuejs2,vue-cli-3,Javascript,Macos,Vue.js,Vuejs2,Vue Cli 3,我正在本地主机开发上测试vue路由器的历史模式,当我尝试直接访问URL时出错:http://localhost:8080/map/2。当我通过某种类型的$router.push访问URL时,它的行为是正确的。我想知道是什么导致了这个问题 路由器/index.js import Vue from "vue" import Router from "vue-router" const PublicMap = () => import("@/components/PublicMap/index
http://localhost:8080/map/2
。当我通过某种类型的$router.push
访问URL时,它的行为是正确的。我想知道是什么导致了这个问题
路由器/index.js
import Vue from "vue"
import Router from "vue-router"
const PublicMap = () => import("@/components/PublicMap/index.vue")
Vue.use(Router)
var routes = [
{
component: PublicMap,
name: "map",
path: "/map/:_id",
},
]
export default new Router({
routes,
mode:
"history"
})
错误:
Uncaught SyntaxError: Unexpected token <
未捕获的语法错误:意外标记<
当您通过“直接访问”收到未捕获的SyntaxError:意外令牌时,这是否意味着您在地址栏中手动输入了URL?您也可以在这里发布PublicMap
组件。这应该与您的服务器配置更相关。你应该让它总是返回你的索引。html@Slim是的,我不确定Vue的哪个部分会这样。我正在使用Vue-cli3,他们说不要修改historyApiFallback
你能发布完整的错误吗?你的应用程序是PWA吗?这可能是导致错误的原因,请参阅此帖子上的答案。它仅在历史记录模式下发生。散列模式工作得很好。你用什么来服务url?只有localhost。文档中说,它应该在哈希和历史模式下工作,无需任何修改。但是您是否使用vue cli服务器、webpack dev服务器等。哪个应用程序为您的内容提供服务?仅打开驱动器上的文件无法使用历史记录模式。需要一个备用URL。只需使用vue-cli3并运行npm start
。因此,基本上,如果我通过RouterLink
html标记重定向,历史路由是有效的,但如果它直接访问它(即,通过url栏点击它)则不起作用