在Azure上更改接受的MIME类型而不需要修改Web.Config

5
我想在我创建并通过FTP部署到Azure的网站上展示一个.mp4作为背景视频。不幸的是,访问背景视频总是给我返回404错误。这些页面都是使用AngularJS的.html文件。
我认为我需要添加一个自定义的mime类型来支持.mp4文件。通常情况下,这可以在Web.Config中完成,但由于我只是在Notepad++中随意编写了一些内容,所以我没有(除了这个问题之外,我真的没有需要)Web.Config。
我正在查看Azure门户中网站的配置部分,并可以看到我可以添加连接字符串和appSettings,但我没有看到任何可以进行MIME类型设置的选项。
是否可以通过门户在Azure上允许.mp4文件,或者我的唯一选择是制作一个Web.Config并将其上传?
2个回答

6

4
抱歉,这个问题特别要求不使用 web.config。我知道如何使用 web.config 来实现,但我想了解如何在没有 web.config 的情况下实现。 - chriszumberge
我正在与Azure团队合作,试图确认这一点。对我来说,这真的没有意义。如果有人想使用Node/Express,为什么要强制使用.NET呢?我宁愿不使用IIS,而是使用NGINX。但是,如果IIS是唯一的选择,也许这与此有关。即使如此,为什么不能使用门户配置呢? - A. Wentzel

0

我尝试了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和其他媒体文件设置标题的方式,就像在您的情况下为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);
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接