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

时间:2015-03-14 13:56:07

标签: azure web-config azure-web-sites

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

我认为我需要为.mp4s添加自定义mime类型。通常这可以在Web.Config中完成,但因为它只是我在Notepad ++中掀起的东西,我没有(除了这个问题,还没有真正需要)一个Web.Config。

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

是否可以通过门户网站在Azure上允许.mp4s,或者是我唯一可以选择创建Web.Config和FTP的选项?

3 个答案:

答案 0 :(得分:4)

执行此操作的唯一方法是通过Web.config文件。以下链接将帮助您配置web.config中的设置:

Use SVG in Windows Azure Websites

答案 1 :(得分:1)

有关以MP4的MIME类型播放视频的特定问题的答案。

answered here

答案 2 :(得分:0)

我尝试了 web.config 解决方案,但它对我不起作用,因为我使用 AuthInterceptor 全局设置标题。

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 和其他媒体文件设置了标头,就像您为 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);
  }
}