为什么在我的 flutter web 上使用路径 URL 策略会破坏我的导航?

问题描述 投票:0回答:3

在社交媒体分享按钮中使用哈希几乎是不可能的,所以我想摆脱我的 flutter web url 路径中的 #,问题是当我这样做时,我用 onRoute 设置的导航会中断并且找不到网页上,我认为这是一个激增问题,但即使我将其部署在 firebase 上,将其配置为单页应用程序,我也遇到同样的问题。 我真的在这里很挣扎..我没有更多的想法了,你呢?

html flutter url flutter-web
3个回答
4
投票

好吧,我正在回答我自己的问题,以便让未来有同样问题的开发者的旅行更轻松。 Flutter 路径 url 策略似乎在子域下崩溃,使用 Surge、Firebase 托管或 netlify 等网站会使您的导航在使用 pathURlStrategy() 时停止工作。

使用真实域名为我解决问题


0
投票

URL 中的“#”被替换为“%23”

查看此处以查看更多 URL 编码中的 ASCII 字符


0
投票

单页应用程序无法在 Firebase 托管或 Netlify 等静态网站托管服务上运行的原因是,当用户尝试访问

\path\in\the\url.html 等 url 时,网站服务器总是尝试使用 
https://www.hostname.path/in/the/url
 等文件或其他内容进行响应
。但是,对于单页 Web 应用程序,无论用户尝试访问哪个 url,服务器都应始终返回
index.html
。这可以通过使用网站根目录中的
_redirect
文件修改网站服务器的重定向规则来实现,如此处所述。

对于 Netlify 部署,只需将

netlify.toml
文件添加到部署目录(Flutter 为
build\web\
),其中包含以下内容:

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200
© www.soinside.com 2019 - 2024. All rights reserved.