在飞行LESS编译器的Java Web应用程序?(On the fly LESS compiler

2019-08-04 02:07发布

我在寻找一种方式来编译关于开发过程中需要在服务器端CSS LESS文件。 例如,如果浏览器发出请求到/assets/css/foo.css我希望服务器发现有一个/assets/css/foo.less文件,然后到了这个文件符合所得的CSS返回。 我猜一定有一个不太servlet的地方,可以做到这一点?

我运行Tomcat 7与Spring MVC应用程序

如何配置Java Web应用程序对飞LESS编译呢?

Answer 1:

我知道你在寻找的是一个Servlet过滤器 。 我知道有一个现成的一个没有LESS编译,并会已经开始使用,使一个lesscss-java的 ,但现在我可以看到有一个叫大项目的Web资源优化的Java - wro4j与服务器端的支持较少 。



Answer 2:

它会更简单 (和更有效)首先编译文件少你的web应用的构建过程中的CSS文件。
作为一个例子,使用Maven时,我们使用了lesscss-行家-插件 ( 编译目标,流程源相),以从更小的文件生成CSS文件。 那么只有CSS文件的使用和包装在webapp。 没有档都动态地使用。
另一个优点是,Web应用程序部署前减少文件进行编译,所以越早被检测编译错误。

在pom.xml中配置例子:

<plugin>
    <groupId>org.lesscss</groupId>
    <artifactId>lesscss-maven-plugin</artifactId>
    <version>1.3.0</version>
    <configuration>
        <sourceDirectory>${project.basedir}/src/main/webapp/less</sourceDirectory>
        <outputDirectory>${project.build.directory}/${project.build.finalName}/css</outputDirectory>
        <compress>true</compress>
        <includes>
            <include>main.less</include>
        </includes>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>


Answer 3:

我们做的是,我们有两种模式:开发和生产。

为了开发,使用官方少CSS JS编译器,汇编上飞:

<link type="text/css" rel="stylesheet/less" href="${...}/style.less" />
<script>(window.less = window.less || {}).env = 'development';</script>
<script src="${staticContext}/lib/less-1.3.3.js"></script>

在你的HTML

为督促,通过使用编译样式https://github.com/marceloverdijk/lesscss-maven-plugin

<link type="text/css" rel="stylesheet" href="${staticContext}/css/style.css" />


文章来源: On the fly LESS compiler for java web app?