IE8上的TinyMCE工具栏显示通过https

问题描述:

我们有一个需要支持IE8的应用程序(不幸的是);这里有一些规格:IE8上的TinyMCE工具栏显示通过https

  • 的Ruby 1.8.7
  • 的Rails 3.1.11
  • TinyMCE的护栏宝石,v4.0.12

当TinyMCE的负载,则所需的字体显示工具栏图标无法加载到IE8中。它只显示表明该字体未加载的框。

如果直接输入网址到字体文件(.woff或.eot),财产以后这样的:

https://mysite.com/assets/tinymce/skins/lightgray/fonts/tinymce.eot

IE显示“0 tinymce.eot%的下载对话框... “再一个提示框,上面写着

” Internet Explorer无法从mysite.com下载tinymce.eot。 的Internet Explorer无法打开此Internet站点。该 请求的站点是不可用或无法找到请tr以后再来。“ ”。

奇怪的是,我们第一次在我们的QA服务器上遇到过这个问题,我们得出结论,问题在于那里的安全证书是自签名的,所以IE不会下载字体。当我们第一次推出这个应用程序到生产(有效证书),我发誓我看到这些图标正确显示,因此假定字体加载正常。但是在上周的某个时间(没有我对应用程序或基础结构知道的更改),图标/字体不再加载。

我一直在寻找和挖掘(在这个网站上和interwebs),并没有能够确定一个有用的故障排除步骤或修复。任何帮助或指导将非常感谢!

IE8不允许您从安全SSL站点下载任何内容。它正在考虑将您的tinymce.eot作为可下载文件,而不是让您通过浏览器进行下载。

删除以下标题将允许下载文件。这可以在您的代理或Web服务器上完成。

缓存控制,过期,附注

对于Apache HTTP服务器


头取消设置缓存控制
头未设置附注 头未设置过期

+0

谢谢,Siva! – ilasno

这可能是由IE 8-11中的跨域策略错误引起的问题。字体文件不会在IE中加载,因为它们是从不同的域服务的,而不是服务于嵌入了TinyMCE的页面的域。

如果遇到这个问题,可以通过与提供网页的域相同的域来提供字体文件,或者添加允许跨域字体加载的正确头文件来解决。

这里有一些链接,可以帮助:

现在,如果这不是问题(这很难说没有一个链接到您的网站),然后也许尝试从另一个浏览器下载tinymce.eot文件并查看是否仍然收到任何错误。也许文件已损坏?可能错误的标题正在发送?如果尚未完成,您可以尝试清除IE中的缓存(Control + Shift + Delete)。


如果这一切仍然没有帮助解决问题,尝试添加在.htaccess文件中的以下内容:

<FilesMatch "\.(woff)$"> 
    Header unset Vary 
</FilesMatch> 

<FilesMatch "\.(eot)$"> 
    Header unset Vary 
</FilesMatch> 

这里查看更多的信息,其中可选择的解决方案,可以发现:@font-face EOT not loading over HTTPS

+0

我敢肯定,这不是一个跨域问题; IE直接链接到字体文件的扼流圈支持这一事实。 从Firefox和Chrome中,字体下载的.eot和.woff版本都可以正常显示,编辑器工具栏也能正确显示。 我试图清除IE的缓存以及SSL状态,但没有骰子。 :( 真的很感谢你的时间和你的想法! – ilasno

+0

@ilasno _“我很确定这不是一个跨域问题;”_为了更好地帮助你解决这个问题,请你回答**是**或**否**以下内容:.eot文件是否与网页本身完全相同的域和协议提供?谢谢,期待您的回复。 – Community

+0

是的。在描述中,我也是描述IE浏览器无法下载字体文件时,我直接*访问它*像这样的URL:https://mysite.com/assets/tinymce/skins/lightgray/fonts/tinymce.eot(这是相同的协议和域作为我的网站)。感谢您的时间,非常感谢! – ilasno