官术网_书友最值得收藏!

Configuring the available MIME types

ASP.Net Core serves static files that are of a known MIME type. A MIME type is an identifier of the type of content that a specific file holds. For example, HTML files have a MIME type of text/html, and JPEG image files have a MIME type of image/jpeg.

When a web server serves a file, it attaches its MIME type to the response as an HTTP header named content-type. The browser then, in turn, uses this MIME type to decide on how to interpret the file.

ASP.NET Core recognizes almost 400 mime types automatically. When it runs into an unrecognized file, it will not serve it to the end user and instead return a 404 — Not Found response. This behavior improves the security of your web application and works in the majority of use cases.

However, sometimes, your application needs to send files to end users that are not recognized by default by ASP.NET Core; for example, .exe files, which are Windows' executable file format. The following code instructs ASP.NET Core to use the application/vnd.microsoft.portable-executable MIME type for these types of files:

FileExtensionContentTypeProvider provider = new FileExtensionContentTypeProvider();
provider.Mappings[".exe"] = "application/vnd.microsoft.portable-executable";

StaticFileOptions staticFileOptions = new StaticFileOptions()
{
ContentTypeProvider = provider
};

app.UseStaticFiles(staticFileOptions);

Using this technique, you can also change existing MIME types to fit your needs, or remove MIME types that you do not want to be served. For example, the following code changes .ts files to be recognized as TypeScript files, instead of the video file MIME type defined by ASP.NET Core. This will be needed later in this book when we start using TypeScript:

FileExtensionContentTypeProvider provider = new FileExtensionContentTypeProvider();

provider.Mappings[".ts"] = "application/x-typescript";
StaticFileOptions staticFileOptions = new StaticFileOptions()
{
ContentTypeProvider = provider
};

app.UseStaticFiles(staticFileOptions);
主站蜘蛛池模板: 栖霞市| 河东区| 建宁县| 新巴尔虎左旗| 什邡市| 文安县| 罗山县| 深泽县| 江北区| 徐汇区| 达尔| 宁远县| 台前县| 增城市| 民县| 贵阳市| 乐安县| 永泰县| 桐庐县| 余江县| 宝应县| 陈巴尔虎旗| 禹城市| 汝州市| 清苑县| 将乐县| 铜山县| 色达县| 枝江市| 辉南县| 林西县| 西安市| 黑水县| 彭阳县| 沈阳市| 襄汾县| 娱乐| 闻喜县| 榆林市| 洪雅县| 兴仁县|