现在,我正在做我的第一个Java项目,一个Web应用程序。我最初是一名PHP开发人员,并且习惯于在Less中编写样式表并使用Gulp进行编译。所以我以为我可以做同样的事情,除了我不会使用Gulp而是Maven。
起初,我无法正常运行,但是经过一个小时的谷歌搜索,我想到了以下内容(pom.xml的一部分):
<plugin>
<groupId>biz.gabrys.maven.plugins</groupId>
<artifactId>lesscss-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<sourceDirectory>${project.basedir}/src/webapp/styles</sourceDirectory>
<outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
<compress>true</compress>
</configuration>
</plugin>
现在,每次我在Intellij IDEA中单击“运行”按钮时,样式表都会被编译为生成的WAR。源代码树如下所示:
我正在使用Java Server Faces,并且对于链接已编译的样式表存在疑问。以前,当我使用纯CSS时,我可以将样式表放到resources目录中,然后使用h:outputStylesheet
来对样式表进行神奇的编译和链接。现在我显然无法做到这一点,所以我想问一下在JSF项目中使用较少文件时最好的工作流程是什么?
谢谢。
要向jsf应用程序中添加较少的文件,必须将*.less
文件放入resources
文件夹(或此文件夹的子文件夹)中。然后您怎么说通过定义一个h:outputStylesheet
来引用它:
<h:outputStylesheet library="styles" name="yourlessfile.less" />
A h:outputStylesheet
呈现具有该值的link
。 library
是文件所在的子文件夹,name
是文件名。您也可以写:
<h:outputStylesheet name="/styles/anotherfolder/yourlessfile.less" />
但这不是经常执行。
要使运行的文件更少,必须将此条目添加到web.xml
。
<mime-mapping>
<extension>less</extension>
<mime-type>text/css</mime-type>
</mime-mapping>
这将在您的应用程序中启用*.less
文件。
((我在JSF 2.3中进行了测试,旧版本也应该兼容)