Platform.uno Wasm项目非根目录部署失败求助
Uno Platform WASM 部署到非根目录的配置方案
要解决部署到https://mywebsite/publish这类子目录的路径问题,不用手动修改index.html,直接通过项目配置就能搞定,步骤如下:
设置项目基础路径
打开WASM项目的.csproj文件,添加或修改以下属性:<PropertyGroup> <!-- 填写你的部署子目录,比如publish --> <WasmShellBasePath>publish</WasmShellBasePath> </PropertyGroup>这个配置会让Uno在构建时自动调整所有资源路径的前缀,生成的
index.html里的资源引用会自动适配子目录,无需手动删除路径开头的/。适配路由(如果用到路由)
如果项目使用了Uno的路由系统,在路由初始化代码里(比如App.xaml.cs的OnLaunched方法)添加基础路径配置:protected override void OnLaunched(LaunchActivatedEventArgs args) { // 其他初始化代码... Router.BasePath = "/publish"; }这能确保路由导航不会跳转到根目录,而是在子目录下正常工作。
检查硬编码的资源路径
如果项目里有硬编码的绝对路径(比如图片、字体的引用),把它们改成相对路径,或者使用Uno提供的%BASE_PATH%占位符,比如:<!-- 原来的绝对路径 --> <img src="/images/logo.png"> <!-- 改成相对路径 --> <img src="images/logo.png"> <!-- 或者用占位符,构建时会自动替换为配置的基础路径 --> <img src="%BASE_PATH%images/logo.png">发布与上传
用Release模式发布WASM项目后,把发布生成的所有文件(包括wwwroot下的内容、index.html、dotnet.js等)完整上传到服务器的/publish目录下,不要遗漏任何文件。
这样配置后,访问https://mywebsite/publish就能正常加载所有资源,不会出现路径错误。
内容的提问来源于stack exchange,提问作者Gerry
相关产品推荐
相关产品推荐

