2017-08-28 62 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/