Не удалось декодировать загруженный шрифт в Angular 5 - PullRequest
0 голосов
/ 26 октября 2018

РЕДАКТИРОВАТЬ: я могу с относительной ясностью сказать, что это проблема с моим приложением Spring.Загружая его в мою тестовую базу, такое предупреждение не срабатывает.

Дорогие коллеги по кодированию ...

Поверьте мне, когда я говорю, я действительно пытался просмотреть многочисленные другие объяснения, опубликованные в вопросах других людей.Это просто ужасно любопытный случай.

Я хотел попробовать развернуть приложение Angular 5 в бэкэнде Spring.Это действительно скелетная установка, которая выглядит следующим образом ...

 @SpringBootApplication
public class AngularApplication extends SpringBootServletInitializer {

    @Configuration
    @EnableConfigurationProperties({ ResourceProperties.class })
    public class WebMvcConfig implements WebMvcConfigurer {

        @Autowired
        private ResourceProperties resourceProperties = new ResourceProperties();

        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {

            long cachePeriod = resourceProperties.getCache().getPeriod().getSeconds();

            final String[] staticLocations = resourceProperties.getStaticLocations();                   
            final String[] indexLocations = new String[staticLocations.length];

            registry.addResourceHandler(
                    "/**/*.css", 
                    "/**/*.js")
                    .addResourceLocations(staticLocations)
                    .setCacheControl(CacheControl.maxAge(cachePeriod, TimeUnit.SECONDS));

            registry.addResourceHandler(
                    "/**/*.html", 
                    "/**/*.json", 
                    "/**/*.bmp", 
                    "/**/*.jpeg", 
                    "/**/*.jpg", 
                    "/**/*.png",
                    "/**/*.ttf", 
                    "/**/*.svg",
                    "/**/*.eot",
                    "/**/*.woff",
                    "/**/*.woff2"
                    )
                    .addResourceLocations(staticLocations)
                    .setCacheControl(CacheControl.maxAge(60, TimeUnit.SECONDS));

            registry.addResourceHandler("/**").addResourceLocations(indexLocations).resourceChain(true)
                    .addResolver(new PathResourceResolver() {
                        @Override
                        protected Resource getResource(String resourcePath, Resource location) {
                            return location.exists() && location.isReadable() ? location : null;
                        }
                    });
        }
    }
    public static void main(String[] args) {
        SpringApplication.run(AngularApplication.class, args);
    }

    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(BizviewAngularApplication.class);
    }

}

Я делаю продуктивную сборку своего приложения, помещаю ее в статическую папку своего приложения Spring и запускаю.Выглядит и чувствует себя прекрасно, в целом.Без ошибок, я могу видеть свои страницы просто отлично с буквально каждым браузером.Edge, Opera, Firefox, но ТОЛЬКО в браузере Chrome, у меня появляется одно предупреждение, которое умножается при перерисовке окна ...

enter image description here

Failed to decode downloaded font и OTS parsing error: invalid version tag.Я удалил font-awesome и переустановил 4.7, но это не помогло.Странно то, что иконки со шрифтами просто великолепны.Я вижу их, и никто не пропал из проекта.Я имею в виду, это мое первое приложение, которое я запускаю, так что я могу что-то упустить, но это выглядит как странно специфическая проблема

1 Ответ

0 голосов
/ 26 октября 2018

У меня было это при размещении на IIS 8.5 с правилами перезаписи.Проблема, насколько я понимаю, заключается в том, что расширение файла фактически интерпретируется как .woff?v=4.7.0.

. Поэтому я добавил это к своему списку расширений шрифтов.Я ничего не знаю о Spring, но из вашего списка, я считаю, вы должны добавить его в registry.addResourceHandler:

registry.addResourceHandler(
    "/**/*.html", 
    "/**/*.json", 
    "/**/*.bmp", 
    "/**/*.jpeg", 
    "/**/*.jpg", 
    "/**/*.png",
    "/**/*.ttf", 
    "/**/*.svg",
    "/**/*.eot",
    "/**/*.woff",
    "/**/*.woff?v=4.7.0",
    "/**/*.woff2"
)
...