如何在 ubuntu nginx 上为 blazor 站点提供正确的 mime 类型

Ron*_*ter 3 ubuntu nginx webassembly blazor

我已经构建了一个 blazor webassembly 站点,该站点使用 nginx 托管在 ubuntu 服务器上。nginx中站点的配置是这样的:

server {
    server_name  app.mysite.local;
    root         /srv/sites/app.mysite.local;
    index        index.html;
}
Run Code Online (Sandbox Code Playgroud)

我使用 Visual Studio 将站点发布到本地文件夹,并将 /dist 文件夹复制到 /srv/sites/app.mysite.local 的根目录。该网站现在正在 app.mysite.local 上工作,但我收到以下错误消息:

WASM:wasm 流编译失败:类型错误:无法在“WebAssembly”上执行“编译”:响应 MIME 类型不正确。预期的“应用程序/wasm”。

WASM:回退到 ArrayBuffer 实例化

我尝试将“application/wasm wasm”添加到文件 /etc/mime.types 和 /etc/nginx/mime.types 并重新启动服务器,但没有任何效果。我不知道这些错误信息是否相关。

我还注意到,当我使用索引页面上的菜单转到 /account/companyname 时,该页面会显示,但是当我在地址栏中键入 url app.mysite.local/account/companyname 时,我得到一个 nginx 404错误。也许这在我解决 mime 类型问题时就解决了,但我不确定。

有人可以帮我解决 mime 类型的问题吗?如果您需要更多信息,请与我们联系。提前致谢!

agu*_*ars 6

您不使用好手:
您应该使用文件夹bin\Release\netstandard2.1\publish\wwwroot发布应用程序dotnet pusblish -c Release并将其复制到/srv/sites/app.mysite.local

nginx.conf应该是:

events { }
http {
    include mime.types;
    types {
        application/wasm wasm;
    }

    server {
        listen 80;

        location / {
            root /srv/sites/app.mysite.local;
            try_files $uri $uri/ /index.html =404;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)