2014-10-30 3 views
4

Перед этим я сталкиваюсь с проблемой браузера IE. Загружает значки для загрузки в первый раз. но если я обновляю страницу, значки не видны. Не могли бы вы рассказать мне, как исправить это со стороны сервера? Это связано с Font-awesome disappears after refresh for all ie browsers ie11,ie10,ie9. но у него нет полного решения.Шрифт awesome icons становится невидимым в IE после обновления

+0

Вам необходимо будет опубликовать код, демонстрирующий проблему. Кроме того, что является неполным в отношении другого решения? –

ответ

3

У нас была эта же проблема, потому что мы хранили файл CSS FA локально. Шрифт @import не смог бы обновиться, вероятно, потому, что он выполняет другой HTTP-вызов, чем тот, который используется для локального файла. Мы вернулись к их CDN и устранили проблему. Если вы загрузили файлы FA и не тянет их в через CDN, а затем изменить свой <link> тег в ваш <head> к:

<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"> 

После того, как мы сделали это FontAwesome служился на каждом обновлении без проблем.

+1

Это не полный ответ. Кто-нибудь знает, в чем проблема? Что IE не нравится с локальной копией CSS? У меня возникла эта проблема, но я должен разместить файл локально для ограничения проекта. – Mike

+0

Проблема, связанная с этим, описана более подробно в этом ответе: http://stackoverflow.com/a/32628649 – philreed

2

В моем случае я использовал java, и единственное, что работает, это фильтр кеша, который я создал.

import java.io.IOException; 

import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.annotation.WebFilter; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebFilter("*") 
public class CacheFilter implements Filter { 

    /** 
    * @constructor CacheFilter 
    * @date 28/09/2015 
    */ 
    public CacheFilter() { 
     //construtor 
    } 

    /* (non-Javadoc) 
    * @see javax.servlet.Filter#destroy() 
    */ 
    @Override 
    public void destroy() { 
     //metodo vazio 
    } 

    /* (non-Javadoc) 
    * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) 
    */ 
    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
     HttpServletResponse httpResponse = (HttpServletResponse) response; 
     HttpServletRequest httpRequest = (HttpServletRequest) request; 
     String page = httpRequest.getRequestURI(); 

     if (!page.contains("fontawesome-webfont") || !page.endsWith(".eot")){ 
      httpResponse.setHeader("Expires", "-1"); 
      httpResponse.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); 
      httpResponse.setHeader("Pragma", "no-cache"); 
     }else if(page.contains("fontawesome-webfont") && page.endsWith(".eot")){ 
      httpResponse.setHeader("Expires", "-1"); 
      httpResponse.setHeader("Cache-Control", "public"); 
      httpResponse.setHeader("Pragma", "cache"); 
     } 

     chain.doFilter(request, response); 
    } 

    /* (non-Javadoc) 
    * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) 
    */ 
    @Override 
    public void init(FilterConfig fConfig) throws ServletException { 
     //metodo vazio 
    } 

} 
0

Я сделал то же самое, за исключением того, что https://stackoverflow.com/a/37196841/1982385 я сделал это на обратный прокси-сервер (HAProxy), а не от самого сервлета.

backend app 
    server server1 10.10.14.4:9090 check 
    acl is_woff capture.req.uri -m sub .woff 
    acl is_ttf capture.req.uri -m sub .ttf 
    acl is_eot capture.req.uri -m sub .eot 
    http-response set-header Cache-Control public if is_eot or is_woff or is_ttf 
    http-response set-header Expires -1 if is_eot or is_woff or is_ttf 
    http-response set-header Pragma cache if is_eot or is_woff or is_ttf 
Смежные вопросы