启动没有端口的 ReactJS 应用程序
Posted
技术标签:
【中文标题】启动没有端口的 ReactJS 应用程序【英文标题】:Start the ReactJS App without port 【发布时间】:2017-05-23 18:04:36 【问题描述】:我正在使用 create-react-app 开发 ReactJS 应用程序。
npm start 和 npm run build 应用程序工作正常,应用程序在端口号 4000 或 pushstate-server build 在端口 9000 中运行,问题是我需要在没有端口号的情况下运行构建应用程序像http://sample/home/ 这样的公共网址,当我直接浏览 build/index.html 时,它会正确显示主页,但路由不像在端口中那样工作,所有的 css 和资产都显示未找到。
【问题讨论】:
【参考方案1】:将端口改为80。
这是 HTTP 请求的默认值,因此,当您尝试访问时www.google.com
事实上你正在访问www.google.com:80
【讨论】:
我将端口设置为80,结果和上面一样,首页正常,其余页面显示404 Not found 你需要一个http服务器来处理你的路由请求,你不能简单地打开index.html
。这就是pushstate-server
所做的。如果您无法在生产中使用它,请转到基于哈希的历史记录。
@VenkateshSomu 这可能是您遇到与正在使用的端口无关的另一个问题的线索。您的浏览器将具有带有 javascript 控制台的开发人员工具,查看它是否输出任何错误。
@Gimby ,虽然使用 pushstate 服务器或 http 服务器运行良好,但我需要在没有这样的服务器的情况下运行,需要在公共 url 中托管完成的应用程序。【参考方案2】:
您必须使用网络服务器而不是 Webpack Dev Server 为您的应用程序提供服务,后者是一种开发工具,不是为生产而设计的。
在此处查看我的答案以获取更多信息:How can I serve a reactjs app through https?
【讨论】:
以上是关于启动没有端口的 ReactJS 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
ReactJS(create-react-app)在端口 80 上运行 [重复]
React 教程 - 如何为 reactJs 应用程序启动节点服务器?