2017-08-28 45 views
0

我需要將jstree(版本3.3.4)作爲jowerter項目(jhipster版本2.20.0 - 不是當前版本!)的bower依賴項添加。部署jhipster應用程序時缺少jstree圖標

使用dev配置文件或從我的IDE啓動應用程序時,一切正常。 但是,當我使用生產配置文件進行部署時,打包.war文件時,項目的.css文件會合併到一個名爲assets/styles/something.vendor.css的大文件中,而圖像似乎被複制到assets/images/。 Web瀏覽器結束了詢問assets/styles/32px.png,導致404 而是在使用dev的外形,風格和圖片都來自bower_components/jstree/dist/themes/default/

加載,但jstree似乎期望它直接referncing他們的圖標旁邊的CSS文件(例如background: url(32px.png))。

我的嘗試:

我設法通過添加例如

.jstree-default .jstree-file { 
    background: url(../images/32px.png) -100px -68px no-repeat !important 
} 

到項目主css文件(src/main/webapp/assets/styles/main.css)和手動添加圖像assets/images覆蓋的一些規則。

但jstree似乎將大多數圖標打包成一個.png文件 - 然後根據使用css規則需要哪個圖標來移動/剪切它。這使得很難讓它看起來很正確。

用我的方式圖標可以加載 - 但他們應該對一些(未知),因此,它們不切:

result

於是,我就重寫屬性像repeat: no-repeatbackground-color: transparent以及(根據我的理解,它們應該已經存在,因爲它們是jstree的css的一部分,並且不會被我的規則覆蓋),但規則似乎太複雜,我無法讓它看起來正確,我希望有更好的解決方案。

如何解決這個問題,而不必'重寫'/覆蓋大部分jstree的css規則?

+1

瞭解JHipster prod構建過程並通過配置或b從其中排除jstree y手動將jstree移動到另一個文件夾中(不使用bower)。 –

回答

1

我通過從一飲而盡構建過程中排除jstree(用於提示@蓋爾Marziou感謝)解決了這個問題:

  1. 確保jstree「devDependencies」下bower.json上市,不依賴下」 「

  2. 添加'main/webapp/bower_components/jstree/dist/jstree.js',到jstree(就像是通過亭子最初添加的)

  3. 編輯的index.html使得

    • jstree的風格。CSS是<!-- endbuild -->在頭節
    • jstree的JavaScript文件後,包含包括<!-- endbower --><!-- endbuild -->評論

這樣jstree中不被打包成vendor.css,這樣的風格和圖像從原始位置加載(bower_components/jstree/dist/