如何设置.NET Core中托管的Blazor应用程序的路径

时间:2019-06-24 19:12:25

标签: .net-core hosting blazor fileprovider

我正在尝试通过Blazor来托管.NET Core Web Server应用。我正在使用FileProvider。我不知道为什么我会不断收到此错误:

  

blazor.webassembly.js:1 WASM:wasm流式编译失败:   TypeError:无法在“ WebAssembly”上执行“编译”:HTTP状态   代码不正确WASM:退回到ArrayBuffer实例化失败   加载资源:服务器响应状态为404(不是   找到)blazor.webassembly.js:1 WASM:异步和同步获取   wasm失败blazor.webassembly.js:1 WASM:异步和同步   提取wasm失败d.printErr @ blazor.webassembly.js:1   blazor.webassembly.js:1 WASM:无法异步准备wasm:   中止(“异步和同步提取wasm均失败”)。建立   -s ASSERTIONS = 1了解更多信息。 d.printErr @ blazor.webassembly.js:1 blazor.webassembly.js:1 WASM:abort(“异步和同步获取   wasm失败”)。使用-s ASSERTIONS = 1构建以获取更多信息。   blazor.webassembly.js:1 WASM:abort(“异步和同步获取   wasm失败”)。使用-s ASSERTIONS = 1构建以获取更多信息。   d.printErr @ blazor.webassembly.js:1 localhost /:1未捕获(在   promise)abort(“ abort(\”异步和同步获取wasm   失败\“)。使用-s ASSERTIONS = 1构建以获取更多信息。”)。用-s构建   ASSERTIONS = 1了解更多信息。 :5000 / favicon.ico:1加载失败   资源:服务器响应状态为404(未找到)

.NET Core主机启动

public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
        }
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            IFileProvider provider = new PhysicalFileProvider(@"D:/blazor/BenchUI/dist/");

            DefaultFilesOptions options = new DefaultFilesOptions
            {
                RequestPath = "",
                FileProvider = provider,
                DefaultFileNames = new List<string> { "index-browser.html" }
            };
            app.UseDefaultFiles(options);
            app.UseStaticFiles();
            app.UseStaticFiles(new StaticFileOptions()
            {
                RequestPath = "",
                FileProvider = provider,
            });
        }
    }

HTML根

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width">
    <title>BenchUI</title>
    <base href="/" />
    <link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
    <link href="css/site.css" rel="stylesheet" />

</head>
<body>
    <app>Loading...</app>

    <script src="_framework/blazor.webassembly.js"></script>
    <script src="Utilities.js"></script>
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>

文件夹结构 我已将文件提供者的根目录设置为dist,但是.NET Dll's在该文件夹之外。我的根目录可能出错吗?我不明白哪里出了问题,因为唯一的错误似乎出在blazor.webassembly.js内,script是一个index.html

我不知道在何处运行dotnet [what dll name].dll?我是否需要发布Client项目以及其中的运行dotnet Client.dll,还是需要发布Client ServerShared。 到目前为止,我已经尝试过dotnet [client name of dll].dll甚至`dotnet run(在csproj位置)

0 个答案:

没有答案