Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
使用maven筛选web.xml会导致字体未加载_Maven_Jsf 2_Font Face - Fatal编程技术网

使用maven筛选web.xml会导致字体未加载

使用maven筛选web.xml会导致字体未加载,maven,jsf-2,font-face,Maven,Jsf 2,Font Face,我用JSF2和Maven 3开发了一个web应用程序。 在我的应用程序中,我在css中使用具有以下代码的自定义字体: @font-face { font-family: 'another_shabby'; src: url("#{resource['fonts:anothershabby_trial-webfont.eot']}"); src: url("#{resource['fonts:anothershabby_trial-webfont.eot']}?#iefix") forma

我用JSF2和Maven 3开发了一个web应用程序。 在我的应用程序中,我在css中使用具有以下代码的自定义字体:

@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/font

现在,我有一个问题似乎是由Maven引起的

我在maven中添加了一个过滤器来解析web.xml,以便根据maven概要文件在开发和生产之间动态切换上下文参数javax.faces.PROJECT_STAGE

这是我的pom:

<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>

org.apache.maven.plugins
maven战争插件
2.2
src/main/webapp
真的
发展
发展
真的
web.xml文件:

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

javax.faces.PROJECT_阶段
${jsfProjectStage}
当我使用这个配置时,字体没有正确加载,但是如果我删除pom中的过滤器,并且上下文参数是“硬编码”的,那么一切都可以正常工作。。。我在Safari(Mac+iPhone)和Chrome上进行了测试


我的配置有问题吗?我错过什么了吗?这是一个已知问题吗?..

您正在筛选二进制文件(即字体文件)

查看指南如何仅排除/包括选定资源

正如它所说的

为了防止在启用筛选时损坏二进制文件,可以配置一个不被筛选的文件扩展名列表


org.apache.maven.plugins
maven战争插件
2.6
properties/config.prop
pdf
资源2
假的
配置
真的
**/性质

根据经验,过滤尽可能少的文件(以获得最佳性能),并让maven复制大部分文件。当一个文件被过滤时,它必须被逐个字符处理(根据给定的字符集),而当不被过滤时,它只是被复制到一个文件系统上。

在做了一些研究之后,我找到了解决我问题的另一种方法。我将其发布,以防万一:

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

org.apache.maven.plugins
maven战争插件
2.6
真的

过滤后的css是什么样子的?您可以将资源从“筛选”中排除。。。这可能是一个答案,但我的“声誉”分数还不够高,目前还不能投票支持答案。。。很抱歉
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
    </configuration>
</plugin>