【发布时间】:2018-03-15 15:09:20
【问题描述】:
如何在没有服务器的情况下打包和托管 React 应用程序。该应用程序纯粹是前端。
尝试构建应用程序npm run build,但这创建了一个需要托管服务器的构建。
【问题讨论】:
标签: reactjs react-router react-redux
如何在没有服务器的情况下打包和托管 React 应用程序。该应用程序纯粹是前端。
尝试构建应用程序npm run build,但这创建了一个需要托管服务器的构建。
【问题讨论】:
标签: reactjs react-router react-redux
不,它不需要服务器来托管它。正如你所说,它只是前端。但是,如果您想通过脚本导航以外的方式进行导航,则需要一台服务器。只需构建您的项目并将索引文件作为静态资产提供就足以在共享主机上运行代码。一旦索引文件完成下载,它将执行导入的 javascript(在这种情况下做出反应)。但是,如果您尝试说, website.com/blah 它不起作用,因为在反应中渲染特定路线需要渲染和返回 javascript。您需要服务器。
react bundle 是自执行的,至少在 create-react-app 中是这样。你不应该有任何问题。
【讨论】:
您需要一个 http 服务器来在本地托管网站。但如果您想将其托管在云端,还有其他选择。
一旦你把它捆绑起来。您只需将资产复制到 Amazon S3 上的存储桶中。它允许您将它们作为静态网站提供服务。您可以在此处参考更多信息。
https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
类似地,其他云提供商也有自己的等价物。
【讨论】:
根据定义,如果没有服务器,您将无法通过http(s): 协议加载任何内容。可能您的意思是通过 url 加载,例如 file:,这是本地文件系统路径。
Bundle 是为通过绝对 url 加载资产而构建的。这是因为您的页面可能在 url 中有一些深层路径。因此,您需要配置服务器,以便您的构建文件夹将作为站点的根目录。
这意味着如果您尝试从工作站上的磁盘运行它,您需要将构建目录的内容放到磁盘的根目录才能工作(C:\ 例如如果是 windows,或者/ 如果你不在 windows 上)
【讨论】: