Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mac(本地主机)上的vue路由器历史记录模式在直接访问时引发错误_Javascript_Macos_Vue.js_Vuejs2_Vue Cli 3 - Fatal编程技术网

Javascript mac(本地主机)上的vue路由器历史记录模式在直接访问时引发错误

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

我正在本地主机开发上测试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.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栏点击它)则不起作用