我在AWS上托管了一个Web应用程序,在正常访问时工作正常 - 比方说https://example.cloud.net/webApp
另一个网站有一个iFrame,它指向Web应用程序上的一个特定页面,该页面还包含一个iFrame(比方说https://example.cloud.net/webApp/iFrame)。此iFrame指向原始登录但具有一些查询字符串参数(https://example.cloud.net/webApp?view=integration&client=otherWebApp)。
因此,实质上其他Web应用程序在iFrame中具有iFrame。这样做是为了解决一些登录问题,应该假设这不能作为解决方案的一部分进行更改。
除了Edge之外,所有浏览器(包括IE 11)上的“双iFrame”解决方案都能完美运行。在Edge上,我们的一些自托管字体文件未加载,并且以下错误出现在浏览器控制台上:
CSS3116: @font-face failed cross-origin request. No Access-Control-Allow-Origin header.
d0123456.font-abcd.ttf
CSS3116: @font-face failed cross-origin request. No Access-Control-Allow-Origin header.
543211e.font-abcd.woff
然后导致
CSS3120: No fonts available for @font-face rule
和很多遗漏的图标
使用相对URL从css中引用字体文件。例如:
@font-face {
font-family: 'FontAwesome';
src: url('/assets/fonts/fontawesome-webfont.eot?v=3.2.1');
src: url('/assets/fonts/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('/assets/fonts/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('/assets/fonts/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('/assets/fonts/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
font-weight: normal;
font-style: normal;
}
有没有人知道为什么这不起作用,特别是因为它适用于除Edge
之外的所有现代浏览器