在Blazor服务器项目上提供不带文件扩展名的静态内容 | 您所在的位置:网站首页 › 静态文件扩展名 › 在Blazor服务器项目上提供不带文件扩展名的静态内容 |
本文介绍了在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 实验室设备网 版权所有 |