2012-12-13 21 views
14

Geliştirme sırasında CSS LESS dosyalarını sunucu tarafında talep üzerine derlemek için bir yol arıyorum. Örneğin, tarayıcı /assets/css/foo.css için bir istekte bulunursa, sunucunun bir /assets/css/foo.less dosyası olduğunu fark etmesini ve daha sonra bu dosyanın uygunluğunu ve sonuçta elde edilen css'yi döndürmesini istiyorum. Bunu yapabilecek bir yerde bir LESS servlet olması gerektiğini tahmin ediyorum?java web uygulaması için anında LESS derleyici?

Ben

Nasıl bir Java Web Uygulaması sinek AZ derleme yapmak için yapılandırabilirim Bahar MVC uygulaması ile tomcat 7 çalıştırıyorum?

cevap

14

Aradığınız şeyin bir Servlet Filter olduğunu düşünüyorum. I bir LES derleme ve bir lesscss-java kullanarak yapmaya başlayacak bir raf kapalı farkında değildi, ancak şimdi LESS support sunucu tarafı ile Web Resource Optimizer for Java - wro4j adlı daha büyük bir proje olduğunu görebilirsiniz.

+1

tarafından

<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'nize eşya için

, kullanmak derlenmiş stilleri: dev İçin

anında derler resmi daha az CSS js derleyici kullanmak Sadece wro4j kullanarak daha az derleme ile ilgili bir ipucu: http://code.google.com/p/wro4j/wiki/AbstractProcessorsFilter –

+0

@AlexObjelean Filtreyi isterseniz ne yapmalısınız? sadece geliştirme sürecinde? – dtrunk

+0

WroFilter'in etkinleştirilmesi/devre dışı bırakılması için bir bayrağı vardır. Bunu yalnızca geliştirmeye ayarlayabilirsiniz ve her şey başka bir değişiklik olmadan çalışmalıdır. –

7

Webapp'ınızın oluşturulması sırasında daha az dosyalarınızı önce css dosyalarına derlemek için (ve daha etkili) olurdu (ve daha etkilidir). Bir örnek olarak,
Maven'inyararlanarak, lesscss-maven-plugin az dosyalarından CSS dosyaları oluşturmak için ( hedefi, işlem kaynakları faz derleme) kullanın. Sonra sadece css dosyaları web sunucusunda kullanılır ve paketlenir. daha az dosya dinamik olarak kullanılır.
Başka bir avantaj, webapp dağıtılmadan önce daha az dosyanın derlenmesidir, bu nedenle derleme hataları daha önce algılanır. pom.xml'Bu

Yapılandırma örneği: Sadece geliştirme ve üretim: Yapmamız olan

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

Bir tasarımcı sadece küçük bir şeyi değiştirdiğinizde verimliliği her öldürdüğünüzde maven çalıştırmakla uğraşırken, üretime girmeden önce bunun iyi olduğuna katılıyorum – ams

İlgili konular