react-snapshot 静态文件构建但不在本地环境中提供
react-snapshot Static Files Build but Aren't Served on Local Environment
第一次就堆栈溢出提问。
我正在研究 reactJS SPA,需要针对 SEO 进行优化。为此,我集成了 react-helmet to dynamically update metadata with the high-level components that are viewed. Unfortunately this isn't consistently sufficient for Google or Facebook's crawlers. After some research, I learned that react-snapshot 是一个不错的选择,因为它会抓取 SPA 并生成静态 html 文件,这些文件最初会在 js 包加载时提供——这应该会导致爬虫看到适当的每条路线的元数据。
我已经按照文档的建议集成了 react-snapshot,并通过 运行ning
npm run build
命令,所有静态文件都按预期生成。但是,当我在本地(端口 3000)启动系统进行测试时,静态文件似乎没有提供给浏览器。通过查看源代码,它表明默认的 index.html 就是所有显示的内容。我不知道我没有做什么,或者做错了什么。如有任何建议,我们将不胜感激!
UPDATE:所以经过两天的 head -> wall 我意识到 create-react-app 不会自动托管构建版本(这是静态页面所在的位置)包含)。为了查看文件是否被正确提供,最好全局安装服务包,并使用它在本地计算机上临时托管您的应用程序。
npm install -g serve
安装后,按照 react-snapshot 文档中的概述构建应用程序,然后 运行 使用以下方法构建应用程序的版本:
serve -s build
所以对于那些因为同样困惑而遇到这个问题的人,我发现我做错了什么。
当使用带有 create-react-app 的 npm start
命令时,它会在本地主机上启动一个带有热更新的服务器,但它不提供构建版本(即使你手动构建它) .由于这是 react-stapshot 生成的静态文件所在的位置,因此它们不会以这种方式提供给浏览器。
如果你想测试项目的缩小版本,包括那些静态文件,(你仍然想在本地做)你需要使用某种服务器包。就我而言,我按如下方式使用服务模块:
npm install -g serve
全局安装的一个,构建您的项目,然后在准备就绪后设置服务器。
npm run build
serve -s build
这将在本地主机上启动您的构建版本 - 这将允许您测试应用的构建版本 - 包括静态 react-snapshot 文件。
第一次就堆栈溢出提问。
我正在研究 reactJS SPA,需要针对 SEO 进行优化。为此,我集成了 react-helmet to dynamically update metadata with the high-level components that are viewed. Unfortunately this isn't consistently sufficient for Google or Facebook's crawlers. After some research, I learned that react-snapshot 是一个不错的选择,因为它会抓取 SPA 并生成静态 html 文件,这些文件最初会在 js 包加载时提供——这应该会导致爬虫看到适当的每条路线的元数据。
我已经按照文档的建议集成了 react-snapshot,并通过 运行ning
npm run build
命令,所有静态文件都按预期生成。但是,当我在本地(端口 3000)启动系统进行测试时,静态文件似乎没有提供给浏览器。通过查看源代码,它表明默认的 index.html 就是所有显示的内容。我不知道我没有做什么,或者做错了什么。如有任何建议,我们将不胜感激!
UPDATE:所以经过两天的 head -> wall 我意识到 create-react-app 不会自动托管构建版本(这是静态页面所在的位置)包含)。为了查看文件是否被正确提供,最好全局安装服务包,并使用它在本地计算机上临时托管您的应用程序。
npm install -g serve
安装后,按照 react-snapshot 文档中的概述构建应用程序,然后 运行 使用以下方法构建应用程序的版本:
serve -s build
所以对于那些因为同样困惑而遇到这个问题的人,我发现我做错了什么。
当使用带有 create-react-app 的 npm start
命令时,它会在本地主机上启动一个带有热更新的服务器,但它不提供构建版本(即使你手动构建它) .由于这是 react-stapshot 生成的静态文件所在的位置,因此它们不会以这种方式提供给浏览器。
如果你想测试项目的缩小版本,包括那些静态文件,(你仍然想在本地做)你需要使用某种服务器包。就我而言,我按如下方式使用服务模块:
npm install -g serve
全局安装的一个,构建您的项目,然后在准备就绪后设置服务器。
npm run build
serve -s build
这将在本地主机上启动您的构建版本 - 这将允许您测试应用的构建版本 - 包括静态 react-snapshot 文件。