在Play 2.x中覆盖WebJar资产

3

请问,是否有一种方法可以覆盖某些资源,特别是JS和LESS文件,在WebJars资产中使用位于app/assets/目录中的文件。

比如说,我安装了一个bootstrap 3.1.1 webjar,那么我该如何使用自己的variables.less文件呢?假设简单地将它放在stylesheets文件夹中不起作用。

对于LESS,也许可以从我的资产中导入它们,但其他文件呢?

1个回答

1
< p > conf/routes 文件具有优先级顺序。因此,如果您想覆盖路由,请将其放在列表中较高的位置。例如:

GET     /webjars/bootstrap/3.1.1/less/variables.less   controllers.Assets.at(path="/public", "my-bootstrap/variables.less")
GET     /webjars/*file                                 controllers.WebJarAssets.at(file)

没错,但是较少的文件并不直接提供服务,在我的情况下它们被编译成了 bootstrap.min.css - Ilya I
1
еңЁPlay 2.3дёӯпјҢжӮЁеә”иҜҘеҸҜд»ҘдҪҝз”Ёж–°зҡ„sbt-webиө„дә§з®ЎйҒ“жқҘе®ҢжҲҗжӯӨж“ҚдҪңгҖӮдҪҶжҳҜпјҢз”ұдәҺWebJarsдёҚжҳҜиө„дә§зј–иҜ‘еҷЁиҝҮзЁӢзҡ„дёҖйғЁеҲҶпјҢеӣ жӯӨзӣ®еүҚжІЎжңүеҠһжі•е®һзҺ°жӮЁжғіиҰҒзҡ„еҠҹиғҪгҖӮ - James Ward
因此,我唯一剩下的选择是将WebJar资产内容放在我的app/assets目录中,至少在2.3发布之前是这样的吗? - Ilya I
嗯,就我个人而言,我会找另一种方法来修改用户界面。我认为修改上游库源代码通常是一个不好的主意。在Bootstrap的情况下,您能否在自己的less文件中覆盖样式? - James Ward
可以的。但是一个小改变就需要将整个Webjar内容移动到“app”文件夹中。我只是习惯了Ruby on Rails重载宝石内容的方法。 - Ilya I
我认为使用新的sbt-web工具会很容易。 - James Ward

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接