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

时间:2014-05-08 19:03:44

标签: internet-explorer https ruby-on-rails-3.1 tinymce-4

我们有一个需要支持IE8的应用程序(不幸的是);这里有一些规格:

  • Ruby 1.8.7
  • Rails 3.1.11
  • tinymce-rails gem,v4.0.12

当加载时,显示工具栏图标所需的字体无法在IE8中加载。它只显示表示未加载字体的框。

如果直接在字体文件(.woff或.eot)中输入URL,请执行以下操作:

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

IE显示下载对话框,其中包含“0%of tinymce.eot ...”,然后显示一个警告框

  

“Internet Explorer无法从mysite.com下载tinymce.eot。   Internet Explorer无法打开此Internet站点。该   请求的网站不可用或无法找到。请试试   再来一次。“

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

我一直在搜索和挖掘(在这个网站和互联网上)并且无法确定有用的故障排除步骤或修复。任何帮助或指导将不胜感激!

2 个答案:

答案 0 :(得分:1)

这可能是由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

答案 1 :(得分:1)

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

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

Cache-Control,Expires,Pragma

对于Apache HTTP Server


  标题取消设置Cache-Control
  标头未设置Pragma   标题未设置到期