2017-06-22 38 views
0

使用vue init webpack project-name创建一个带有vue init webpack project-name的Vue项目,然后调用npm run dev,您可以打开浏览器localhost:8080并查看默认页面。实际上,您可以导航到大多数“非文件”路径,例如/a/b/c-d,而Vue仍然会选取它。它似乎没有回暖的唯一路径与.*结束的,和那些与.简单地结束。例子是/a.js/b./c/d.png阻止vue-cli(webpack)获取所有非文件GET路径 - 航行环境

我试图使用Vue公司与REST后端(Sails.js,使用sails-generate-new-webpack-vue),这意味着我将有路线,将看起来像GET /api/users和类似。与帆发电机,共同的WebPack Vue的项目生成,以及一些配置文件是为了放的WebPack输出到由帆使用的.tmp目录,以实际提供文件改变。

我试图查看源文件,发现正常npm run dev电话node build/dev-server.js,与参数package.json,但在那里我没有看到它的实际重定向一切一个HTML文件。这已经很有帮助,但经过快速检查后,我注意到,通过我的风帆设置,该文件实际上从未使用过(插入了一个简单的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公司选择的每一个途径是build/dev-server.js,历史后备API。这很好,我希望能帮助那些寻找答案的人,但是通过这个特定的设置,这个文件从来没有被实际使用过,而且我对于正在使用的东西还是一无所知。我意识到使用我提到的npm包的人很少,但如果任何人都可以看一看,这将非常有帮助!

编辑:究竟发现哪里停用

必须通过相当数量的源代码看,只见webpack/node_modules/sails-hook-webpack-vue/index.js,只是要注释掉线114和120

回答

0

依我之见,您不需要webpack模板提供的额外服务器配置。 我会建议你切换到的WebPack-简单模板。

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

如果你设置自己的服务器来提供这些文件,请记住服务器构建* .js文件。

0

最终得到它:d

问题同history-api-fallback middleware,这是build/dev-server.js上正常Vue公司的项目通常可切换。 但随着我的设置,它最终被当地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