nuxt.js 始终默认为 localhost
,尽管主机在 nuxt.config.js
中被定义为 frontend.gradez.loc
nuxt.config.js
的内容:
server: {
host: 'frontend.gradez.loc',
port: 3000
},
package.json
的内容:
"config": {
"nuxt": {
"host": "frontend.gradez.loc",
"port": "3000"
}
}
nuxt
作为 dev
启动脚本:
"dev": "nuxt --hostname frontend.gradez.loc --port 3000",
由于一些奇怪的原因,启动开发脚本时它总是默认为:监听:http://localhost:3000/
我尝试在 React 上做同样的事情,我唯一要做的就是创建一个 .env
文件,并在其中添加 host=frontend.gradez.loc
就这样工作了。
最佳答案
要创建服务器,Nuxt 在底层使用 Node 的 http.createServer
,然后在该服务器上调用 listen({ host, port })
。
因此,如果在您的本地计算机上,主机名 frontend.gradez.loc
映射到 127.0.0.1
(我认为是这种情况),那么该服务器正在运行IP 127.0.0.1
。
为了创建您在 Listening on...
中看到的 url,Nuxt 获取底层服务器的 IP,并将其映射回主机名字符串。它将 IP 127.0.0.1
静态映射到字符串 'localhost'
,因此无论您配置什么 host
,如果它映射到 127.0.0.1
那么 Nuxt 将始终将其映射到该 url 中的 localhost
。执行此操作的代码是 here .
报告服务器在 localhost:3000
而不是 frontend.gradez.loc:3000
上运行本身并没有什么不正确的地方。从网络意义上来说,这确实是真的,因为两者最终都指向 127.0.0.1:3000
。因此,从开发服务器的 Angular 来看,这里没有任何问题,它按设计工作。
我不确定启动服务器时是否有任何东西自动在浏览器中加载该网址 - 如果是这样,我可以看到从工作流程中与该主机名(例如cookie)耦合的其他事物的 Angular 来看,这是多么不方便、代理服务器等 - 但如果您在浏览器中手动输入 frontend.gradez.loc:3000
,一切都会正常工作。
关于javascript - nuxt.js - 无法定义主机和端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62719805/