如何配置共享主机(例如 Hostgator)以显示我的 React 应用程序的子页面?
How do I configure shared hosting (such as Hostgator) to show my React app for sub pages?
我用 reactJS 创建了一个页面,我正在尝试将它上传到 Hostgator。我使用了 react-router-dom 并且我可以访问主网站页面,但是当我尝试访问像 /about
这样的内部页面时,我收到 404 错误。
您正在寻找的模式称为 front controller。您希望通过中央处理逻辑路由每个 URL,以便它可以选择在那个 URL 上显示哪些内容。对于 React,该逻辑在 Router 组件中实现。
Hostgator 等共享主机通常使用 Apache 服务器。默认情况下,Apache 将 URLs 映射到本地文件系统。如果该路径中存在一个文件,它会提供它,否则会显示 404 错误。你需要覆盖这个行为来让你的 React 路由器能够完成它的工作。使用 Apache,可以在名为 .htaccess
.
的文件中实现配置覆盖
Deployment | Create React App 有代码,您需要将其放入网络主机上的 .htaccess
文件中,与 index.html
:
位于同一目录中
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
这会导致每个 URL 都由 index.html
处理,除非文件系统中实际存在同名的不同文件。 index.html
包括你的 React 路由规则。
如果您需要在共享主机中重定向您的 Create-react-app 路由。您必须在根 index.html 文件目录中创建一个 .htaccess 文件。
然后您需要在 .htaccess 文件中编写代码,例如(代码如下):
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
我用 reactJS 创建了一个页面,我正在尝试将它上传到 Hostgator。我使用了 react-router-dom 并且我可以访问主网站页面,但是当我尝试访问像 /about
这样的内部页面时,我收到 404 错误。
您正在寻找的模式称为 front controller。您希望通过中央处理逻辑路由每个 URL,以便它可以选择在那个 URL 上显示哪些内容。对于 React,该逻辑在 Router 组件中实现。
Hostgator 等共享主机通常使用 Apache 服务器。默认情况下,Apache 将 URLs 映射到本地文件系统。如果该路径中存在一个文件,它会提供它,否则会显示 404 错误。你需要覆盖这个行为来让你的 React 路由器能够完成它的工作。使用 Apache,可以在名为 .htaccess
.
Deployment | Create React App 有代码,您需要将其放入网络主机上的 .htaccess
文件中,与 index.html
:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
这会导致每个 URL 都由 index.html
处理,除非文件系统中实际存在同名的不同文件。 index.html
包括你的 React 路由规则。
如果您需要在共享主机中重定向您的 Create-react-app 路由。您必须在根 index.html 文件目录中创建一个 .htaccess 文件。
然后您需要在 .htaccess 文件中编写代码,例如(代码如下):
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]