我使用create-react-app
构建并托管在netlify
中。
在此link中,提到需要为SPA编写重定向规则。
/* /index.html 200
但是重定向到index.html
无效,因为没有使用该URL呈现视图。
我也尝试过重定向到/
,例如
[[redirects]]
from = "/*"
to = "/"
但是这也不起作用。
如何为create-react-app
进行全面重定向?
答案 0 :(得分:3)
要捕获所有重定向,请在/* /index.html 200
文件中使用_redirects
。
根据netlify文档,_redirects
文件应位于您的根构建目录中。
create-react-app默认在名为build
的文件夹
因此,只需在构建应用程序后修改build scripts
中的package.json
以在构建文件夹中添加_redirects
。
示例。
"scripts": {
....
"build": "react-scripts build && echo '/* /index.html 200' | cat >build/_redirects ",
...
}
确保netlify中的build命令为yarn run build
或npm run build
在package.json
中进行更改后,只需重新构建代码即可。
答案 1 :(得分:0)
有两种(2)方式创建redirects when hosting on Netlify。
_redirects
文件位于publish
目录的根目录(CRA中的/build
)[[redirects]]
配置文件中的netlify.toml
列表中/public/_redirects
(选项1)将_redirects
放在/public
目录中。运行构建命令时,CRA会将/public
中的所有文件复制到构建目录。
/public/_redirects
/* /index.html 200
/netlify.toml
(选项2)将netlify.toml
放入要部署到Netlify的项目(资源库)的根(/
)目录中。您可以将重定向行添加到netlify.toml
的末尾(如果已经存在)。
/netlify.toml
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
force = false
注意: 这些选项可以组合使用,但是请记住_redirects
会覆盖{{1 }}。
您还可以使用redirects playground将一种格式转换为另一种格式。