我想在我创建并通过FTP部署到Azure的网站上显示.mp4作为背景视频。 不幸的是,访问背景视频总是给我一个404。 这些页面都是使用AngularJS的.html文件。
我认为我需要为.mp4s添加自定义mime类型。通常这可以在Web.Config中完成,但因为它只是我在Notepad ++中掀起的东西,我没有(除了这个问题,还没有真正需要)一个Web.Config。
我正在查看网站Azure门户中的“配置”部分,可以看到我可以在哪里添加连接字符串和appSettings,但是我没有看到任何可以执行MIME类型的地方。
是否可以通过门户网站在Azure上允许.mp4s,或者是我唯一可以选择创建Web.Config和FTP的选项?
答案 0 :(得分:4)
执行此操作的唯一方法是通过Web.config文件。以下链接将帮助您配置web.config中的设置:
答案 1 :(得分:1)
有关以MP4的MIME类型播放视频的特定问题的答案。
答案 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);
}
}