Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css IE11下载多个图标文件,而不是一个_Css_Fonts_Icons_Font Face - Fatal编程技术网

Css IE11下载多个图标文件,而不是一个

Css IE11下载多个图标文件,而不是一个,css,fonts,icons,font-face,Css,Fonts,Icons,Font Face,我有一个webapp,它使用@font-face来显示TinyMCE图标。在本地运行应用程序时,这些图标会按照IE11中的预期显示。但是,当部署到云服务器时,图标不会出现在IE11中。我已经编辑了我的@font-face,将.eot文件从等式中去掉,以便所有浏览器都只获取.woff。此外,在我的应用程序的本地和远程版本上,图标会按照Chrome、Safari和Firefox的预期加载和显示。我注意到两个关键点: 在本地应用程序(通过HTTP)上,IE11获得图标文件tinymce.woff,没有

我有一个webapp,它使用@font-face来显示TinyMCE图标。在本地运行应用程序时,这些图标会按照IE11中的预期显示。但是,当部署到云服务器时,图标不会出现在IE11中。我已经编辑了我的@font-face,将.eot文件从等式中去掉,以便所有浏览器都只获取.woff。此外,在我的应用程序的本地和远程版本上,图标会按照Chrome、Safari和Firefox的预期加载和显示。我注意到两个关键点:

  • 在本地应用程序(通过HTTP)上,IE11获得图标文件tinymce.woff,没有问题。在我将其更改为.woff而不是.eot之前,.eot也工作得很好。然而,在应用程序的远程版本(通过HTTPS)上,IE11获得tinymce.eot、tinymce.woff和tinymce.ttf(按顺序),并且都有200响应代码。为什么IE11下载3个不同版本的图标文件?这三个文件之间是否可能存在某种冲突,导致图标无法显示?如果是,我该如何解决这个问题?请记住,在本地版本的应用程序中,IE11只获得一个图标文件(tinymce.woff),我相信这是我想要的行为

  • 研究让我相信,问题可能在于“Pragma”和“Cache-Control”标题,它们作为对应用程序获取图标文件请求的响应而被发回。但是,我很难弄清楚如何删除HTTP响应的这些头。我的应用程序使用SpringMVC

  • 我当前的@font-face配置:

    @font-face{font-family:'tinymce';
      src:url('fonts/tinymce.woff') format('woff'),
      url('fonts/tinymce.ttf')format('truetype'),
      url('fonts/tinymce.svg#tinymce') format('svg');
      font-weight:normal;
      font-style:normal}
    

    不看演示就很难猜到。但是由于IE11下载了一个EOT,而这个EOT并不存在于你的
    @font-face
    规则中,看起来你认为正在执行的CSS并不是浏览器使用的CSS

    如果
    @font-face
    规则没有问题(但是您在此处复制/粘贴了错误的字体),那么可能字体上没有设置可安装位。IE11需要这样做,但另一方面,您可能希望图标字体能够解决这个问题

    也有可能mime类型在提供的字体上设置不正确。有关一些疑难解答选项,请参阅


    而且,如果您找到了解决方案,请将其张贴在此处,以便其他人也可以学习!:-)

    不看演示就很难猜到。但是由于IE11下载了一个EOT,而这个EOT并不存在于你的
    @font-face
    规则中,看起来你认为正在执行的CSS并不是浏览器使用的CSS

    如果
    @font-face
    规则没有问题(但是您在此处复制/粘贴了错误的字体),那么可能字体上没有设置可安装位。IE11需要这样做,但另一方面,您可能希望图标字体能够解决这个问题

    也有可能mime类型在提供的字体上设置不正确。有关一些疑难解答选项,请参阅


    而且,如果您找到了解决方案,请将其张贴在此处,以便其他人也可以学习!:-)

    解决方案确实是去掉“pragma”标题。因为我的项目是一个Spring启动应用程序,所以我在安全配置类中创建了一个头过滤器。要创建Spring安全配置类,请执行以下操作: 1.创建一个扩展org.springframework.security.config.annotation.web.configuration.websecurityConfigureAdapter的类。 2.为类提供以下注释:

    -@配置(org.springframework.context.annotation.Configuration) -@EnableWebSecurity(org.springframework.security.config.annotation.web.configuration.EnableWebSecurity)

    -@EnableGlobalMethodSecurity(securedEnabled=true,Preprestenabled=true)(org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity)

  • 在类中,创建一个带有@Bean注释的方法。以下是我的完整定义:

    public HeaderWriter cacheControlHeaderWriter()
    {
        return new DelegatingRequestMatcherHeaderWriter(
            new NegatedRequestMatcher(new RegexRequestMatcher(".+\\.((eot(\\?)?)|(woff2?)|(ttf)|(svg))", "GET")),
            new CacheControlHeadersWriter()
        );
    }
    

  • 解决方案确实是去掉“pragma”标题。因为我的项目是一个Spring启动应用程序,所以我在安全配置类中创建了一个头过滤器。要创建Spring安全配置类,请执行以下操作: 1.创建一个扩展org.springframework.security.config.annotation.web.configuration.websecurityConfigureAdapter的类。 2.为类提供以下注释:

    -@配置(org.springframework.context.annotation.Configuration) -@EnableWebSecurity(org.springframework.security.config.annotation.web.configuration.EnableWebSecurity)

    -@EnableGlobalMethodSecurity(securedEnabled=true,Preprestenabled=true)(org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity)

  • 在类中,创建一个带有@Bean注释的方法。以下是我的完整定义:

    public HeaderWriter cacheControlHeaderWriter()
    {
        return new DelegatingRequestMatcherHeaderWriter(
            new NegatedRequestMatcher(new RegexRequestMatcher(".+\\.((eot(\\?)?)|(woff2?)|(ttf)|(svg))", "GET")),
            new CacheControlHeadersWriter()
        );
    }
    

  • 很抱歉给你带来了困惑。我在编辑@font-face配置,看看是否可以强制IE11下载*.woff而不是*.eot,以防解决问题。它没有解决这个问题。另外,在复制+粘贴配置时,我会忽略*.eot选项。然而,在我本地构建的应用程序中,当我强制IE11下载*.woff时,它会很好地播放,并显示图标。在云实例上没有这么多。很抱歉造成混淆。我在编辑@font-face配置,看看是否可以强制IE11下载*.woff而不是*.eot,以防解决问题。它没有解决这个问题。另外,在复制+粘贴配置时,我会忽略*.eot选项。然而,在我本地构建的应用程序中,当我强制IE11下载*.woff时,它会很好地播放,并显示图标。在云实例上没有这么多。