发送到 vue-cli-service 的未知请求未代理到后端 Rails 服务器



我在端口 3001 上运行 vue-cli-service,我的后端 rails 应用程序在端口 3000 上运行。

我希望所有未知请求都转到后端 rails 应用程序。 阅读 vue-cli 文档,似乎下面的代码应该可以工作,但事实并非如此。

module.exports = {
devServer: {
disableHostCheck: true,
port: 3001,
public: '0.0.0.0:3001',
overlay: {
warnings: true,
errors: true
},
proxy: 'http://lab.lizardgizzards.com:3000'
},
publicPath: "/",
}

我有一个铁路路线/terms应该呈现一个脚手架页面。当我输入http://lab.lizardgizzards.com:3001/terms时,它不会渲染 rails 页面,它仍然显示 vue 渲染。它不应该呈现轨道页面吗?还是这仅适用于 API 请求?

根据文档,您对proxy设置所做的工作似乎应该有效。但是,它也对我不起作用。

其原因在代码中:

https://github.com/vuejs/vue-cli/blob/9ab0fbde1cf87d888aa3d2c3c52176b8de464c59/packages/%40vue/cli-service/lib/util/prepareProxy.js#L81

如果设置了显式context(如下面的示例所示(,它将提前几行,一切正常。如果没有context,它假设所有带有accept: text/html的请求都应该index.html,大概是为了与历史模式路由兼容。其他请求(如 AJAX 调用(应该可以正常代理。

这确实对我有用,即使对于 HTML 页面也是如此。

proxy: {
'/': {
target: 'http://lab.lizardgizzards.com:3000'
}
}

就个人而言,我会将远程服务器放在自己的路径后面,以将其与UI清楚地分开。 例如:

proxy: {
'/api': {
target: 'http://lab.lizardgizzards.com:3000',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}

最新更新