解决nginx中vue项目位置不对的问题/还是没明白原因,不过找到了解决办法,记录一下,以防忘记!在vue项目中的vue.config.js文件中修改生产环境中publicPath的子路径。publicPath:process.env.NODE_ENV===“生产”?"/subpath":"/",在vue项目router目录下的index.js文件exportdefaultnewRouter{}节点中添加或修改base:Subpath属性。exportdefaultnewRouter({mode:'history',//去掉url中的#base:process.env.BASE_URL,//获取publicPath的值,这里根据不同的环境获取不同的publicPath...其他配置})如上配置,在生产环境访问项目时,域名后会自动添加/子路径,例如:http://XXXX.com/subpath/index在nginx中配置location/subpath{aliasE:/workspace/theFrontEnd/a/dist;#autoindex开启;try_files$uri$uri//subpath/index.html;indexindex.htmlindex.htm;}注意点:[location/subpath{}]子路径必须和vue项目中的子路径相同,[try_file$uri$uri//subpath/index.html;]中的子路径也必须相同作为vue项目中的子路径。有[aliasE:/workspace/theFrontEnd/a/dist;]这一行应该使用alias而不是root。5、反思nginx学习不是很好。nginx是不是通过location代理了vue项目的打包路径。如果location的路径是/就可以了,会直接访问vue的打包路径下的文件。如果location的路径不是/而是/XXX,那么通过nginx访问vue项目时,路径中会加上/XXX子路径,所以是404。所以给vue项目加上子路径,并保证vue项目中的子路径与nginx中的location路径一致!
