Vue.js 发送到vue cli服务的未知请求未代理到后端Rails服务器
我的vue cli服务在端口3001上运行,我的后端rails应用程序在端口3000上运行 我希望所有未知请求都转到后端rails应用程序。在阅读vue cli文档时,下面的代码似乎可以正常工作,但事实并非如此Vue.js 发送到vue cli服务的未知请求未代理到后端Rails服务器,vue.js,Vue.js,我的vue cli服务在端口3001上运行,我的后端rails应用程序在端口3000上运行 我希望所有未知请求都转到后端rails应用程序。在阅读vue cli文档时,下面的代码似乎可以正常工作,但事实并非如此 module.exports = { devServer: { disableHostCheck: true, port: 3001, public: '0.0.0.0:3001', overlay: {
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: "/",
}
我有一个rails路由/terms
,它应该呈现一个scaffold页面。当我输入http://lab.lizardgizzards.com:3001/terms
它不会呈现rails页面,它仍然显示vue呈现。它不应该呈现rails页面吗?或者这只适用于API请求吗?基于此,您使用proxy
设置所做的操作似乎可以正常工作。然而,这对我也不起作用
原因在代码中:
如果设置了显式的上下文
(如下面的示例),它将提前几行,一切正常。如果没有上下文
,它假定所有带有accept:text/html
的请求都应该是index.html
,可能是为了与历史模式路由兼容。其他请求,如AJAX调用,应该可以很好地代理
这对我来说确实有效,甚至对HTML页面也是如此
代理:{
'/': {
目标:'http://lab.lizardgizzards.com:3000'
}
}
就我个人而言,我会将远程服务器放在它自己的路径后面,以清楚地将其与UI分开。e、 g:
代理:{
“/api”:{
目标:'http://lab.lizardgizzards.com:3000',
来源:对,
路径重写:{
“^/api”:”
}
}
}
如何定义未知?未在vue路由器中注册?请参阅指向的网页包文档,以及有关此功能所基于的http代理中间件的文档。在每个请求中,您可以定义请求是发送到后端还是发送到前端。您可以定义一个函数并读取整个请求对象。但是,如果您想将所有其他内容发送到后端,那么似乎需要管理一个URL列表,这些URL应该放在前端。使用不同的前缀端点通常更容易(例如,/api
)