在Blazor服务器项目上提供不带文件扩展名的静态内容 您所在的位置:网站首页 静态文件扩展名 在Blazor服务器项目上提供不带文件扩展名的静态内容

在Blazor服务器项目上提供不带文件扩展名的静态内容

2023-03-26 22:51| 来源: 网络整理| 查看: 265

本文介绍了在Blazor服务器项目上提供不带文件扩展名的静态内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

根据Apple对Universal Links的要求,我有一个名为”Apple-app-site-Association”的文件,它位于Azure网站的根文件夹中。访问mysite.com/Apple-app-site-Association应该会在浏览器中返回JSON文本。我在Azure上托管网站,并运行Blazor服务器项目。我的项目没有web.config文件。

明确地说,文件”Apple-app-Site-Association”不应该有扩展名”.json”

我已经查看了this solution和this solution。

我还尝试修改Startup.cs中的configuration()方法以提供静态文件

app.UseStaticFiles(new StaticFileOptions { ServeUnknownFileTypes = true, DefaultContentType = "application/json" });

虽然上面的代码确实正确地服务于mysite.com/Apple-app-Site-Association,但它有一个不想要的副作用404‘ing_framework/blazor.server.js。

如何修改Apple-app-Site-Association的MIME类型,以便我的Blazor服务器项目在访问mysite.com/Apple-app-Site-Association时提供文件?

或者,使用上面的UseStaticFiles()方法,如何解决装入_framework/blazor.server.js时出现的404错误?

In_Host.cshtml

...some stuff... 推荐答案

虽然您正在使用Blazor,但它本质上仍然是一个ASP.NET核心应用程序,问题实际上是关于ASP.NET核心、路由和如何处理静态文件。

如this answer中所示,通过控制器完成此操作可能是最简单的,而不是试图强制路由器处理没有扩展名的URL。我还在一个项目中为robots.txt执行了此操作,以控制不同品牌的显示内容。

我尝试过:

public class StaticContentController : Controller { [HttpGet] [Route("apple-app-site-association")] public ContentResult AppleAppSiteAssociation() { // source in root of wwwroot folder const string source = @"apple-app-site-association.json"; string json = System.IO.File.ReadAllText(source); return Content(json, "application/json", Encoding.UTF8); } }

源文件(扩展名为.json)位于项目中,并且设置了”较新时复制”属性,因此它位于/bin文件夹中。

正在运行:

这篇关于在Blazor服务器项目上提供不带文件扩展名的静态内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,WP2

在Blazor服务器项目上提供不带文件扩展名的静态内容 为WP2原创文章,链接:https://www.web.wp2.cn/other/%e5%9c%a8blazor%e6%9c%8d%e5%8a%a1%e5%99%a8%e9%a1%b9%e7%9b%ae%e4%b8%8a%e6%8f%90%e4%be%9b%e4%b8%8d%e5%b8%a6%e6%96%87%e4%bb%b6%e6%89%a9%e5%b1%95%e5%90%8d%e7%9a%84%e9%9d%99%e6%80%81%e5%86%85%e5%ae%b9/



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有