在没有 Web.Config 的情况下更改 Azure 上接受的 MIME 类型

Change Accepted MIME Type on Azure without Web.Config

我想在我创建并通过 FTP 部署到 Azure 的网站上显示 .mp4 作为背景视频。 不幸的是,访问背景视频总是给我一个 404。 这些页面都是使用 AngularJS.

的 .html 文件

我认为我需要为 .mp4 添加自定义 MIME 类型。通常这会在 Web.Config 中完成,但由于它只是我在 Notepad++ 中突然想到的东西,所以我没有(除了这个问题,真的不需要)Web.Config。

我正在查看该站点的 Azure 门户中的“配置”部分,可以看到我可以在何处添加连接字符串和 appSettings,但我没有看到任何可以执行 MIME 类型的地方。

是否可以通过门户在 Azure 上使用 .mp4s,或者是我制作 Web.Config 和 FTP 的唯一选择吗?

唯一的方法是通过 Web.config 文件。下面的 link 将帮助您配置 web.config:

中的设置

Use SVG in Windows Azure Websites

我尝试了 web.config 解决方案,但它对我没有用,因为我使用 AuthInterceptor 全局设置 Headers。

export class AuthInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    req = req.clone({
      setHeaders: {
        'Content-Type' : 'application/json; charset=utf-8',
        'Accept': 'application/json',
        'Authorization': `Bearer ${token_here}`,
      },
    });
    return next.handle(req);
  }
}

因此,这也为 SVG 和其他媒体文件设置了 headers,就像您的 mp4 文件一样。所以,我过去常常根据请求类型和请求的资源类型来过滤传入的请求。下面是一段代码:

export class AuthInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    if (req.method === 'GET' && req.url.endsWith('.svg')) {
      req = req.clone({
        setHeaders: {
          'Authorization': `Bearer ${btoa("admin:admin")}`,
        },
      });
    }
    else {

      req = req.clone({
        setHeaders: {
          'Content-Type': 'application/json; charset=utf-8',
          'Accept': 'application/json',
          'Authorization': `Bearer ${btoa("admin:admin")}`,
        },
      });
    }
    return next.handle(req);
  }
}