我已经成功部署了一个 SolidJS 应用程序来 netlify,但我遇到了一个问题,除了
/
之外的其他路由会导致应用程序崩溃。之前已将 React 应用程序部署到 Netlify,在公共文件夹中添加 _redirects
效果很好,但我不确定文件应该放在项目目录中的哪个位置,因为我本地的 SolidJS 项目必须位于 public
文件夹中。我尝试在 dist
文件夹下添加 client
文件夹,但这并没有解决问题。
SolidJS 特有的这个问题有什么解决办法吗?
_redirects
文件是正确的方法吗?
根据 Netlify 重定向路由文档,有两种方法可以实现此目的。鉴于您无法使用第一种方法,也许第二种方法是您的解决方法:
将一个或多个重定向表添加到您的Netlify 配置文件。 此方法允许更结构化的配置和附加的 功能,如 Netlify 配置文件语法中所述 下面部分。
希望这有帮助。
我猜你的问题是你用 Solids 基本路由器创建了一个应用程序。我通过添加一个普通的 _redirects 文件 到 dist 文件夹(没有任何扩展名)并向其中添加以下行来修复它:
/* /index.html 200
通过这样做,我在 App.js 中的 Solid 路由器配置可以按预期工作。 例如,来自 netlify 的默认“跟随损坏的链接或网址”不再出现,并且它采用我定义的路线:
<Router root={App}>
<Route path={"/"} component={Login}/>
//other defined routes
<Route path={"*"} component={_404}/>
</Router>
不要忘记显式地将其添加到 dist 文件夹中,否则它将无法工作。我更喜欢在 netlify 上手动部署,因此如果您使用 GitHub,请确保它没有丢失!