Answers:
我遇到类似的问题,发现有两种解决方案,它们可以直接在浏览器中查看应用程序
ngrok http 8080 -host-header="localhost:8080"
ngrok http --host-header=rewrite 8080
显然用您正在运行的任何端口替换8080
当我在嵌入式页面中使用此解决方案时,此解决方案仍会引发错误,该错误会从react应用程序中获取bundle.js。我认为,由于它将标头重写为localhost,因此在嵌入时,它正在寻找的localhost是该应用程序不再在其上运行
-host-header
应该来的端口号之前,所以第一个例子应该是ngrok http -host-header="localhost:8080" 8080
我在可正常使用的react应用中使用了此设置。我创建了一个名为configstrp.js的配置文件,其中包含以下内容:
module.exports = {
ngrok: {
// use the local frontend port to connect
enabled: process.env.NODE_ENV !== 'production',
port: process.env.PORT || 3000,
subdomain: process.env.NGROK_SUBDOMAIN,
authtoken: process.env.NGROK_AUTHTOKEN
}, }
需要服务器中的文件。
const configstrp = require('./config/configstrp.js');
const ngrok = configstrp.ngrok.enabled ? require('ngrok') : null;
并这样连接
if (ngrok) {
console.log('If nGronk')
ngrok.connect(
{
addr: configstrp.ngrok.port,
subdomain: configstrp.ngrok.subdomain,
authtoken: configstrp.ngrok.authtoken,
host_header:3000
},
(err, url) => {
if (err) {
} else {
}
}
);
}
如果您没有自定义域,请不要传递子域