2015-10-02 6 views
4

Мне нужна помощь с конфигурацией wro4j, чтобы использовать шрифт-awesome из webjars. У меня есть следующий файл конфигурации:Wro4j, webjars и font-awesome

<?xml version="1.0" encoding="UTF-8"?> 
<groups xmlns="http://www.isdc.ro/wro" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.isdc.ro/wro wro.xsd"> 

    <group name="angular-bootstrap"> 
<!--  <css>classpath:META-INF/resources/webjars/bootstrap/3.3.4/less/bootstrap.less</css> --> 
<!--  <css>classpath:META-INF/resources/webjars/bootstrap/3.3.4/less/theme.less</css> --> 
<!--  <css>classpath:META-INF/resources/webjars/font-awesome/4.4.0/less/font-awesome.less</css> --> 
<!--  <css>classpath:META-INF/resources/webjars/flag-icon-css/0.7.1/less/flag-icon.less</css> --> 
     <css>classpath:META-INF/resources/webjars/bootstrap/3.3.4/css/bootstrap.min.css</css> 
     <css>classpath:META-INF/resources/webjars/bootstrap/3.3.4/css/bootstrap-theme.min.css</css> 
     <css>classpath:META-INF/resources/webjars/font-awesome/4.4.0/css/font-awesome.min.css</css> 
     <css>classpath:META-INF/resources/webjars/flag-icon-css/0.7.1/css/flag-icon.min.css</css> 
     <css>file:${project.basedir}/src/main/wro/main.less</css> 
     <js>webjar:jquery/2.1.1/jquery.min.js</js> 
     <js>webjar:angularjs/1.4.4/angular.min.js</js> 
     <js>webjar:angularjs/1.4.4/angular-route.min.js</js> 
     <js>webjar:angularjs/1.4.4/angular-cookies.min.js</js> 
     <js>webjar:angularjs/1.4.4/angular-animate.min.js</js> 
     <js>webjar:angular-resource/1.4.5/angular-resource.min.js</js> 
     <js>webjar:angular-translate/2.7.2/angular-translate.min.js</js> 
<!--  <js>webjar:angular-translate-loader-static-files/2.6.1-1/angular-translate-loader-static-files.min.js</js> --> 
     <js>webjar:bootstrap/3.3.4/js/bootstrap.min.js</js> 
    </group> 

</groups> 

Но при загрузке страницы html символы шрифта не отображаются. На консоли не отображается сообщение об ошибке.

Это моя конфигурация Maven для wro4j:

<plugin> 
       <groupId>ro.isdc.wro4j</groupId> 
       <artifactId>wro4j-maven-plugin</artifactId> 
       <version>${wro4j.version}</version> 
       <executions> 
        <execution> 
         <phase>generate-resources</phase> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 

       <configuration> 
        <wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory> 
        <cssDestinationFolder>${project.build.directory}/generated-resources/static/css</cssDestinationFolder> 
        <jsDestinationFolder>${project.build.directory}/generated-resources/static/js</jsDestinationFolder> 
        <wroFile>${project.build.directory}/wro/wro.xml</wroFile> 
        <extraConfigFile>${basedir}/src/main/wro/wro.properties</extraConfigFile> 
        <contextFolder>${basedir}/src/main/wro</contextFolder> 
       </configuration> 

       <dependencies> 
        <dependency> 
         <groupId>org.webjars</groupId> 
         <artifactId>jquery</artifactId> 
         <version>2.1.1</version> 
        </dependency> 

        <dependency> 
         <groupId>org.webjars</groupId> 
         <artifactId>angularjs</artifactId> 
         <version>1.4.4</version> 
        </dependency> 

        <dependency> 
         <groupId>org.webjars</groupId> 
         <artifactId>bootstrap</artifactId> 
         <version>3.3.4</version> 
        </dependency> 

        <dependency> 
         <groupId>org.webjars</groupId> 
         <artifactId>font-awesome</artifactId> 
         <version>4.4.0</version> 
        </dependency> 

        <dependency> 
         <groupId>org.webjars</groupId> 
         <artifactId>flag-icon-css</artifactId> 
         <version>0.7.1</version> 
        </dependency> 

        <dependency> 
         <groupId>org.webjars.bower</groupId> 
         <artifactId>angular-resource</artifactId> 
         <version>1.4.5</version> 
        </dependency> 

        <dependency> 
         <groupId>org.webjars</groupId> 
         <artifactId>angular-translate</artifactId> 
         <version>2.7.2</version> 
        </dependency> 

        <dependency> 
         <groupId>org.webjars</groupId> 
         <artifactId>angular-translate-loader-static-files</artifactId> 
         <version>2.6.1-1</version> 
        </dependency> 

       </dependencies> 
      </plugin> 

И мои конфигурационные свойства файла:

#List of preProcessors 
preProcessors=cssUrlRewriting,cssImport,lessCssImport 
#List of postProcessors 
postProcessors=less4j,jsMin,cssMin 
+0

Вы видите поврежденные ресурсы, которые запрашиваются генерируемым пакетом? –

+0

Нет, я не вижу ошибок в консоли или запросах. Ошибки появились ранее, когда я использовал локатор webjar в конфигурации. – fjtorres

+0

У меня такая же проблема с шрифтами (.ttf, .woff файлы) не найдена. Вы нашли решение после предложений @AlexObjelean? –

ответ

0

Вы используете wro4j Maven плагин. При применении процессоров, это относится к пути к классам ресурсов, которые имеют URLы, в следующей форме:

classpath:META-INF/resources/webjars/flag-icon-css/0.7.1/css/flag-icon.min.css, imageUrl ../flags/1x1/yt.svg 

Этот вид URL, не являются действительными из коробки, так как они пытаются получить доступ к пути к классам ресурсов, которая не является общедоступной , Простейшая работа заключается в использовании решения времени выполнения (с использованием WroFilter), которое заботится о ресурсах пути к классам. Другим подходом может быть гибридное решение, в котором maven-плагин используется для создания пакетов, в то время как сервлет (подобно тому, как это делает WroFilter) отвечает за обслуживание ресурсов класса pathpath. Для этого вам может понадобиться проект webjars-servlet.

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

+0

Спасибо! Я попробую ваши показания. – fjtorres

3

Может быть, для вас уже слишком поздно, но у меня была такая же проблема и она была решена с помощью плагинов maven.

Проблема в том, что плагин wro4j не заботится ни о каком файле шрифта в зависимостях webjars, поэтому шрифты недоступны в конце.

Первого плагин: распаковать webjars в ${project.build.directory}/unpacked, webjars перечисленного под artifactItems узла и включают в себя все файлы из папки «шрифтов» (**/fonts/**/*)

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.10</version> 
      <executions> 
       <execution> 
        <id>unpack-fonts</id> 
        <phase>generate-resources</phase> 
        <goals> 
         <goal>unpack</goal> 
        </goals> 
        <configuration> 
         <artifactItems> 
          <artifactItem> 
           <groupId>org.webjars</groupId> 
           <artifactId>bootstrap</artifactId> 
           <version>3.2.0</version> 
           <type>jar</type> 
           <overWrite>false</overWrite> 
          </artifactItem> 
          <artifactItem> 
           <groupId>org.webjars</groupId> 
           <artifactId>font-awesome</artifactId> 
           <version>4.5.0</version> 
           <type>jar</type> 
           <overWrite>false</overWrite> 
          </artifactItem> 
         </artifactItems> 
         <includes>**/fonts/**/*</includes> 
         <outputDirectory>${project.build.directory}/unpacked</outputDirectory> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Второго плагин: скопировать шрифты файлы сгенерированных-ресурсы «по умолчанию "каталог

 <plugin> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.7</version> 
      <executions> 
       <execution> 
        <id>copy-fonts</id> 
        <phase>process-resources</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}/generated-resources/static/fonts</outputDirectory> 
         <resources> 
          <resource> 
           <directory>${project.build.directory}/unpacked/META-INF/resources/webjars/bootstrap/3.2.0/fonts</directory> 
           <includes> 
            <include>**/*</include> 
           </includes> 
           <filtering>false</filtering> 
          </resource> 
          <resource> 
           <directory>${project.build.directory}/unpacked/META-INF/resources/webjars/font-awesome/4.5.0/fonts</directory> 
           <includes> 
            <include>**/*</include> 
           </includes> 
           <filtering>false</filtering> 
          </resource> 
         </resources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

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

Должен сказать, что я не новичок, ни эксперт на maven, поэтому мой ответ можно было бы улучшить.

Надеюсь, это поможет кому-то. ;)

Straw

+0

Спасибо Straw Berry, я постараюсь проверить ваше предложение. – fjtorres

+0

Я тоже искал что-то вроде этого. Благодарю. Похоже, это решение будет работать. Но это кажется более сложным, чем должно быть, поэтому я лично продолжу вручную копировать эти шрифты. – Enwired

+0

Hi @Enwired, я, наконец, уродую wro4j и делаю вещи, сделанные npm, bower и grunt ... Это не очень хорошее решение для меня, но wro4j (и wro maven plugin) явно нехорошо делать такие вещи, пока мой проект росла. –

 Смежные вопросы

  • Нет связанных вопросов^_^