2014-07-12 44 views
0

我正在將Apache Roller(基於Java的Web應用程序)從YUI2升級到YUI3。我們沒有在這裏使用雅虎的非SSL CDN,因爲Roller有時運行在SSL上,我們希望避免瀏覽器向用戶發出有關訪問非SSL站點的彈出警告。這意味着我們需要將YUI3庫嵌入到我們的項目中,就像我們之前用更小的YUI2所做的那樣。問題是YUI3有大量的文件夾(總共約375個文件夾),每個組件或組件依賴項都有一個文件夾。我使用YUI Configurator來識別和導入我們需要的「僅」75個,但仍然在我們的project file system中非常混亂,增加了75個文件夾,大多數只有一個需要的文件。將YUI3合併到Java Web應用程序中的有效方法?

有沒有更有效的方法來嵌入YUI3?如果我可以將75「-min.js」文件全部放在一個文件夾中而不是一個文件夾中,但是我不確定YUI3的依賴項發現系統是否可以正常工作。就像JQueryUI的Custom Builder那裏我選擇我想要的組件,並且只需添加一個文件,或者只是一些文件來源控制將是理想的。我們已經在某些項目中使用了JQueryUI,如果在文件系統上合併YUI3不會太麻煩,我們可能需要更多地使用它。

+0

您可以使用配置程序http://yuilibrary.com/yui/configurator/ – juandopazo

回答

0

我們在我們的大型Java Web-App中完成了這一工作。第一步是創建一個名爲YUI的新Maven工件。它只包含整個YUI版本。我們有一個內部maven repo來發布它,但是如果你不使用Maven,你可以把YUI放入一個jar文件並將它包含到你的項目中。

我們將這些文件放入JAR中的/ META-INF/resources/yui中,因爲此路徑將在符合Servlet 3.0的容器(如Tomcat)中顯示爲Web。

這是值得看看WebJars項目,該項目打包了大量的JS框架。它所託管的YUI版本已過期,但您可能可以通過它來更新它。

這將允許您配置YUI從這個新的位置挑文件了(使用在loader documentation描述的「基地」屬性)

在這一點上,你將不會再依靠CDN,所以你可以通過SSL託管就好,我認爲這符合問題的要求。缺點是您將加載單個文件,而不是使用YUI的組合加載器。

我們所做的就是編寫一個組合加載器Servlet,它能夠接受YUI組合請求並將所請求的模塊連接在一起。如果YUI文件位於JAR中,則需要從那裏獲取它們,但要做到這一點非常簡單。

寫你自己的組合裝載機來主持YUI的唯一警告是主持畫廊。該圖庫的最近版本已經硬編碼鏈接到其CSS中指向其CDN的圖像。這將導致通過SSL託管的問題。如果你不使用畫廊,那很好。

相關問題