How can I use ReactJS as a static website?
我想用 React 开发我的静态 Web 应用程序。我刚刚完成了井字游戏入门教程。无论如何,我可以将 ReactJS 直接”编译”(或任何术语)到我的 HTML 文件中吗?因此,要运行该 ReactJS 应用程序,我需要使用 Yarn 的服务器运行它。
我不喜欢使用 CDN,因为我想更新和管理依赖项。
假设,对于我的起点,我想让官方 React 入门教程中的井字游戏只使用一个 HTML 文件(该 HTML 文件中的 CSS 和 JS)。我想看看这是否可能,所以我不关心这个问题的最佳实践。
- 构建应用程序然后获取文件输出? stackoverflow.com/questions/39791069/…
-
我想我错过了什么,或者我没有,idk。我已经运行 yarn build 打开了 index.html,但它返回了这个错误:pastebin.com/RTLdhxPj。
你应该看看 Gatsby JS
它是一个用于 React 的静态站点生成器。可能这就是您正在寻找的。
我已经测试过了。 yarn build 仅适用于服务器。甚至 python3 -m http.server 也可以。所以不行!如果没有开箱即用的服务器,从非 Bower 包管理器下载的 ReactJS 将无法工作。
听起来你正在使用带有 create-react-app 的 Yarn。如果是这样,您正在运行:
yarn start
现在运行:
yarn build
在此处查看更多信息:https://github.com/facebookincubator/create-react-app
静态 Web 应用程序将构建到 build 文件夹中。你会在那里找到所有的静态资源,比如 JS、CSS 和 HTML。
-
我想我错过了什么,或者我没有,idk。我运行 yarn build 打开了 index.html,但它返回此错误:pastebin.com/RTLdhxPj。
-
这是一个不同的问题,也许最适合提出一个新问题。创建时将其链接到此处,我们可以提供帮助。
-
这些可能有助于解决这个问题:github.com/facebookincubator/create-react-app/blob/master/…、stackoverflow.com/questions/45484183/cannot-create-react-app、stackoverflow.com/questions/46566235/ …
运行 npm run build 或 yarn build 并查看 build 文件夹中的输出。它生成静态 HTML、CSS 和 Javascript。
- 我想我错过了什么,或者我没有,idk。我运行 yarn build 打开了 index.html,但它返回此错误:pastebin.com/RTLdhxPj。
-
尝试将其部署到 Web 服务器。通过文件系统打开它可能不起作用。
-
我希望它是静态网站。我不想使用服务器。这可以通过 CDN 完成,但我想看看是否可以使用从 Yarn 或 NPM 等包管理器下载的 ReactJS 制作静态网站。
-
您不需要将其部署到 Web 服务器。您应该能够在本地运行它。
-
这是一个静态网站。必须通过 HTTP 将静态文件提供给浏览器。因此,您必须使用提供静态文件的 Web 服务器。
-
从理论上讲,您可以打开 index.html 并从文件系统加载页面。它可以工作,但通常浏览器不允许您加载额外的资源(出于安全原因),并且页面中的链接也可能被破坏。
-
您也可以使用本地 Web 服务器,无需部署到远程服务器或 CDN。如果您运行 yarn start,它会启动一个本地轻量级 Web 服务器并通过 HTTP 将静态文件提供给浏览器。
-
我已经测试过了。 yarn build 仅适用于服务器。甚至 python3 -m http.server 也可以。所以不行!如果没有开箱即用的服务器,ReactJS 将无法工作。
-
但这与 ReactJS 无关。它只是一个客户端框架。正如我之前所说,您需要通过 HTTP 向浏览器提供 HTML、CSS 和 Javascript。这就是你需要服务器的原因,而不是因为 ReactJS 依赖于它。
-
@DávidMolnár 那是完全错误的。您的网络浏览器无需服务器(软件)即可从 file:// 读取。
-
@DarkTrick 你是对的。浏览器可以使用 file:// 从文件系统读取文件,但它经常会导致问题,在这种情况下,您可能需要修复 html 和 CSS 文件中的 URL。这就是为什么我建议在这种情况下使用静态 Web 服务器。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269210.html