2015-12-22 2 views
1

Я разработки веб-приложений с JSF2 и Maven 3. В моем приложении я использую специальный шрифт с помощью следующего кода в моем CSS:фильтрация web.xml с Maven причин шрифт не загружен

@font-face { 
font-family: 'another_shabby'; 
src: url("#{resource['fonts:anothershabby_trial-webfont.eot']}"); 
src: url("#{resource['fonts:anothershabby_trial-webfont.eot']}?#iefix") 
    format('embedded-opentype'), 
    url("#{resource['fonts:anothershabby_trial-webfont.woff']}") 
    format('woff'), 
    url("#{resource['fonts:anothershabby_trial-webfont.ttf']}") 
    format('truetype'), 
    url("#{resource['fonts:anothershabby_trial-webfont.svg']}#WebSymbolsRegular") 
    format('svg'); 
font-weight: normal; 
font-style: normal;} 

в файлы шрифтов в моей resources папке, в каталоге: webapp/resources/fonts

Теперь у меня есть проблема, которая, кажется, вызвано Maven ...

Я добавил фильтр в мавена для разбора web.xml для динамического переключения контекст-параметр javax.faces.PROJECT_STAGE между разработкой и производством, согласно профилю Maven.

Вот мой ПОМ:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.2</version> 
    <configuration> 
     <webResources> 
      <resource> 
       <directory>src/main/webapp</directory> 
       <filtering>true</filtering> 
      </resource> 
     </webResources> 
    </configuration> 
</plugin> 

<profile> 
    <id>dev</id> 
    <properties> 
     <jsfProjectStage>Development</jsfProjectStage> 
    </properties> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
    </activation> 
</profile> 

Файл web.xml:

<context-param> 
    <param-name>javax.faces.PROJECT_STAGE</param-name> 
    <param-value>${jsfProjectStage}</param-value> 
</context-param> 

Когда я использую эту конфигурацию, шрифт не загружается должным образом, но если удалить фильтр в ПОМ и контекст-параметр «жестко закодированный», все отлично работает ... Я тестировал на Safari (Mac + iPhone) и Chrome.

У меня проблема в моей конфигурации? Я что-то пропустил? Это известная проблема? ...

+0

Как выглядит ваш css после фильтрации? И вы можете исключить ресурсы из «фильтрации» ... Это может быть решением для – Kukeltje

ответ

0

После нескольких исследований я нашел другое решение моей проблемы. Я размещаю его на всякий случай:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
     <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors> 
    </configuration> 
</plugin> 
+0

Да, но моя оценка «репутации» недостаточно высока, чтобы проголосовать за ответы на данный момент ... извините – gWombat

0

Вы фильтруете свои двоичные файлы (т. Е. шрифт файл).

Заканчивать руководство, как включать/выключать только выбранные ресурсы https://maven.apache.org/plugins/maven-resources-plugin/examples/binaries-filtering.html

Как говорит

Чтобы предотвратить развращает ваши двоичные файлы, когда включена фильтрация, вы можете настроить список расширений файлов, не будет фильтроваться.

сделать

 <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.6</version>    
     <configuration> 
      <!-- the default value is the filter list under build --> 
      <!-- specifying a filter will override the filter list under build --> 
      <filters> 
      <filter>properties/config.prop</filter> 
      </filters> 
      <nonFilteredFileExtensions> 
      <!-- default value contains jpg,jpeg,gif,bmp,png --> 
      <nonFilteredFileExtension>pdf</nonFilteredFileExtension> 
      </nonFilteredFileExtensions> 
      <webResources> 
      <resource> 
       <directory>resource2</directory> 
       <!-- it's not a good idea to filter binary files --> 
       <filtering>false</filtering> 
      </resource> 
      <resource> 
       <directory>configurations</directory> 
       <!-- enable filtering --> 
       <filtering>true</filtering> 
       <excludes> 
       <exclude>**/properties</exclude> 
       </excludes> 
      </resource> 
      </webResources> 
     </configuration> 
     </plugin> 

Как правило, фильтр, как наименее файлы как можно (чтобы получить лучшую производительность), и пусть Maven скопировать большинство файлов. Когда файл фильтруется, он должен обрабатываться символом по символу (в соответствии с заданной кодировкой), а когда он не фильтруется, он просто копируется в файловую систему.

+0

Спасибо! Это решило мою проблему :) – gWombat