我正在尝试部署到 IIS。不在根目录中,而是在子文件夹中。 这是工作:
<base href="/">
更改为 <base href="/ChangeTag/">
完美!
但是,当我尝试使用本地主机进行调试时:找不到网页 - 错误 404
我想要的是部署(自动),在wwwroot的子文件夹内并执行本地测试,而不需要多次修改index.html
是否可以像在 Angular 中那样做一些事情,使用代理,使用不同的构建配置等?
谢谢
将 flutter 和 dart 升级到当前版本(测试版通道)后,我遇到了类似的问题,我的意思是它在调试模式下很好,但在构建发布上不起作用。 我做了什么?我刚刚在
<base href="/">
文件(位于 index.html
文件夹内)评论了这 <your_app_folder_name>/web
行,并且两者(调试和发布版本)都像魅力一样恢复了工作。
我通过更改线路发表评论
<base href="/">
到
<!-- <base href="/"> -->
进行更改并:尝试运行
flutter build web
命令,将位于 web
路径的生成的 <your_app_folder_name>/build/
文件夹复制到网络服务器的任何子文件夹(例如 <your_websrv_root>/webtestfolder
),它将在该地址上工作您浏览器的 http://webtestfolder
。
而不是使用
flutter build web
尝试
flutter build web --base-href /sub_folder_name/
这将更改您的
build/web/index.html
的基本 URL
或者如果您使用 github actions 部署在 github-pages 上。 这将创建一个子文件夹名称,与您的存储库名称相同(username.github.io/{repo-name})
- run: flutter build web --base-href /${{ github.event.repository.name }}/
这是完整的工作流程示例:flutter_github_pages_deploy.yaml
注意 只需确保您的
web/index.html
包含
<base href="$FLUTTER_BASE_HREF">
答案位于 web 文件夹(而不是 /build/web)的 index.html 文件中
<!DOCTYPE html>
<html>
<head>
<!--
If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from.
The path provided below has to start and end with a slash "/" in order for
it to work correctly.
For more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
-->
<base href="/sub-folder/">
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">