我正在努力正确配置Browsercync(可能还有一些中间件?)。
我的配置如下:
local.example.com
通过/etc/hosts
配置我的本地地址。
devel.example.com
这是我们公司发展的环境(后端)。
staging.example.com
这是我们公司的临时环境(后端)。
作为我的UI开发人员,我想使用我的本地代码,但是可以使用其中一个后端环境。
我正在使用gulp
来构建我的项目等。它还有运行browser-sync
并观察文件更改的任务。但是,当然现在有来自后端的cookie域存在问题。 CSRF令牌cookie域由浏览器设置为当前使用的后端。
我试过了:
使用配置中间件http-proxy-middleware
:
server: {
baseDir: './build',
middleware: [
proxyMiddleware('/api', {
target: 'http://devel.example.com',
changeOrigin: true,
})
]
]
但我遇到的问题是它正在进行非透明重定向,这在浏览器控制台中是可见的。我认为它会像这样工作,代理会屏蔽那些对浏览器的请求会认为所有请求和响应都来自local.example.com
。但它似乎并没有像这样工作(或者我配置得很糟糕)。
这个解决方案的另一个大问题是它以某种方式将我的POST
HTTP请求更改为GET
(WTF?!)。
在browser-sync
proxy
选项中使用内置版。在许多教程中,我看到使用带有proxy
选项的server
选项,但它似乎不再起作用了。所以我试着像serveStatic
一样使用它:
serveStatic: ['./build'],
proxy: {
target: 'devel.example.com',
cookies: {
stripDomain: false
}
}
但这根本不起作用......
我真的很乐意为这个主题提供任何帮助。
由于