15

開発中にオンデマンドでサーバー側でCSSLESSファイルをコンパイルする方法を探しています。たとえば、ブラウザが/assets/css/foo.cssにリクエストを送信した場合、サーバーに/assets/css/foo.lessファイルがあることを認識させ、このファイルをコンパイルして結果のcssを返すようにします。これを実行できるサーブレットがどこかにあるはずだと思いますか?

SpringMVCアプリケーションでTomcat7を実行しています

その場でLESSコンパイルを実行するようにJavaWebアプリを構成するにはどうすればよいですか?

4

3 に答える 3

15

あなたが探しているのはServlet Filterだと思います。私、LESS コンパイルを行う市販のものを認識しておらず、lesscss-javaを使用して作成を開始していたはずですが、 Web Resource Optimizer for Java - wro4j with server side LESS supportというより大きなプロジェクトがあることがわかりました。

于 2012-12-13T21:32:32.210 に答える
7

Web アプリケーションのビルド中に、最初に less ファイルを css ファイルにコンパイルする方が簡単(かつ効果的) です。
例として、Mavenを使用する場合、lesscss-maven-plugin (コンパイルゴール、プロセス ソースフェーズ) を使用して、より少ないファイルから css ファイルを生成します。次に、cssファイルのみが使用され、webapp にパッケージ化されます。動的に使用されるファイルも少なくありません。
もう 1 つの利点は、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>
于 2012-12-13T21:54:09.653 に答える
5

私たちがしていることは、dev と production の 2 つのモードがあるということです。

開発には、オンザフライでコンパイルされる公式の 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>

あなたのHTMLで

製品の場合、 https://github.com/marceloverdijk/lesscss-maven-pluginでコンパイルされたスタイルを使用します

<link type="text/css" rel="stylesheet" href="${staticContext}/css/style.css" />
于 2013-04-16T23:18:33.663 に答える