Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Node.js 防止vue cli(网页包)拾取所有非文件获取路由-sails环境_Node.js_Express_Webpack_Vue.js_Sails.js - Fatal编程技术网

Node.js 防止vue cli(网页包)拾取所有非文件获取路由-sails环境

Node.js 防止vue cli(网页包)拾取所有非文件获取路由-sails环境,node.js,express,webpack,vue.js,sails.js,Node.js,Express,Webpack,Vue.js,Sails.js,使用Vue init webpack project name创建Vue项目、进行设置并最终调用npm run dev时,您可以在localhost:8080上打开浏览器并查看默认页面。事实上,您可以导航到几乎任何“非文件”路径,例如/a/b/c-d,Vue仍然会选择它。它似乎没有选择的唯一路径是以*结尾的路径,以及仅以结尾的路径。例如/a.js,/b.,/c/d.png 我正在尝试将Vue与REST后端(Sails.js,using)一起使用,这意味着我将拥有类似于GET/api/users和

使用
Vue init webpack project name
创建Vue项目、进行设置并最终调用
npm run dev
时,您可以在
localhost:8080
上打开浏览器并查看默认页面。事实上,您可以导航到几乎任何“非文件”路径,例如
/a/b/c-d
,Vue仍然会选择它。它似乎没有选择的唯一路径是以
*
结尾的路径,以及仅以
结尾的路径。例如
/a.js
/b.
/c/d.png

我正在尝试将Vue与REST后端(Sails.js,using)一起使用,这意味着我将拥有类似于
GET/api/users
和类似的路由。使用该sails生成器,将生成一个常见的webpack Vue项目,并更改一些配置文件,以便将webpack的输出放在sails使用的
.tmp
目录中,以便实际提供文件

我尝试查看源文件,注意到,通常代码< NPM运行DeV调用<代码>节点构建/DEVServer。JS<代码>,作为PAR <代码>包。JSON<代码>,但在那里我看不到它实际上将所有东西重定向到单个HTML文件。这已经很有帮助了,但是在快速检查之后,我注意到在我的sails设置中,该文件实际上从未被使用过(插入一个简单的

console.log
,它从未运行过)

Vue如何(更确切地说,在哪里)将所有“非文件”路由重定向到单个路径

这可能会在我找到它的方式和位置后变得很清楚,但否则,我如何更改它,并且只让Vue选择特定的快速路线,如路径集?与中一样,理想情况下,我会让它选择诸如
/:username/profile

答案并不一定是针对帆船的,不过如果你有更多的信息,这可能会很有帮助

编辑:重新创建的步骤

npm i -g sails sails-generate-new-webpack-vue vue-cli
echo "{\"generators\":{\"modules\":{\"new\":\"sails-generate-new-webpack-vue\"}}}" > .sailsrc
sails new test-project
编辑:结果显示它是特定于帆的

事实证明,让Vue选择每条路由的是历史回退API中的
build/dev server.js
。这很好,我希望能帮助人们寻找答案,但在这个特定的设置中,该文件从未被实际使用过,我对正在使用的内容一无所知。我知道很少有人使用我提到的npm软件包,但是如果有人能看一下,那将是非常有帮助的

编辑:找到确切的停用位置


必须浏览大量源代码,看到
webpack/node_modules/sails hook webpack vue/index.js
,只需注释掉第114行和第120行,正如我所看到的,您不需要webpack模板提供的额外服务器配置。 我会建议您切换到网页简单模板

dev服务器位于build文件夹中,该文件夹名为dev server.js。它使用express设置本地服务器来为您的文件提供服务

如果您设置了自己的服务器来提供文件,请记住为build*.js文件提供服务器

最终得到了:D

问题在于,在正常的Vue项目上,通常可以在
build/dev server.js
中切换。 但在我的设置中,它最终被引入了本地
webpack/node_modules/sails hook webpack vue/index.js
第114行和第120行:

sails.config.http.middleware.historyFallback = historyFallback();
...
sails.config.http.middleware.order.unshift('historyFallback');
你只需要把它注释掉

然后,您可以在
config/routes.js
中按照自己的意愿指示路线,并让它们指向
index.html