在Java Web应用程序的飞行LESS编译器?

ams*_*ams 14 css java servlets java-ee less

我正在寻找一种在开发过程中根据需要在服务器端编译CSS LESS文件的方法.例如,如果浏览器向/assets/css/foo.css发出请求,我希望服务器注意到存在/assets/css/foo.less文件,然后编译该文件并返回生成的css.我猜在某个地方必须有一个可以做到这一点的无法使用的servlet?

我正在使用Spring MVC应用程序运行tomcat 7

如何配置Java Web App即时编译?

Jas*_*ske 14

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


Gui*_*sta 7

在构建Web应用程序期间,首先将较少的文件编译为css文件会更简单(也更有效).
例如,当使用Maven时,我们使用lesscss-maven-plugin(编译目标,进程源阶段)从较少的文件生成css文件.然后只在webapp中使用和打包css文件.没有的文件都是动态的.
另一个优点是在部署webapp之前编译的文件较少,因此可以更快地检测到编译错误.

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>
Run Code Online (Sandbox Code Playgroud)

  • 我同意这在投入生产之前是好的,因为当设计师只是在设置运行maven时,每当你改变一个小东西杀死生产力时 (9认同)

小智 5

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

对于dev,使用官方的less 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>
Run Code Online (Sandbox Code Playgroud)

在你的HTML中

对于prod,请使用https://github.com/marceloverdijk/lesscss-maven-plugin编译的样式

<link type="text/css" rel="stylesheet" href="${staticContext}/css/style.css" />
Run Code Online (Sandbox Code Playgroud)