seb*_*kem 19 grails assets asset-pipeline
Grails 2.4现在使用Asset Pipeline来管理和处理Grails应用程序中的静态资产,而不是资源系统.这是相当新的,在互联网上没有太多关于它的文档.
我的问题是,如何正确处理第三方库?
例如,select2(http://ivaynberg.github.io/select2/)库在其单个平面文件夹中附带所有.css,.js,图像文件.
我应该在复制不同的文件类型及其相应的assets/javascripts/,assets/stylesheets/等子文件夹?如何处理那些没有像.json,text或doc文件这样明显位置的文件?
我应该创建一个vendors/select2/文件夹吗?在哪里,assets/在里面web-app/?然后,我应该如何从我的GSP加载所有必要的文件?
此lib也只在表单视图中需要,因此除非需要,否则不应加载.
Guy*_*ord 20
Baxxabit的回答让我得到了解决方案.我一直在努力做同样的事情,但是想要充分利用管道,以便我可以使用less-asset-pipeline插件.
以bootstrap为例,我创建了一个供应商文件夹作为标准资产文件夹的对等文件,然后删除了那里的引导程序文件.
application.js中:
//This is a javascript file with its top level require directives
//= require jquery
//= require bootstrap-3.1.1/javascript/bootstrap
//= require_tree views
//= require_self
...
Run Code Online (Sandbox Code Playgroud)
和application.css:
/*
*= require_self
*= require main
*= require mobile
*= require bootstrap-3.1.1/stylesheets/bootstrap
*= encoding UTF-8
*/
Run Code Online (Sandbox Code Playgroud)
要覆盖boostrap自定义,我可以简单地将自定义的variables.less文件放入./grails-app/assets/vendor/bootstrap-3.1.1/stylesheets/variables.less.当涉及到覆盖文件时,将忽略资产下的第一个文件夹,此后路径需要匹配您在供应商下面放置的任何内容.
这给了我这种层次结构:
grails-app/assets/
??? images
...
??? javascripts
? ??? application.js
??? stylesheets
? ??? application.css
? ??? bootstrap-3.1.1
? ? ??? stylesheets
? ? ??? variables.less
? ??? errors.css
? ??? main.css
? ??? mobile.css
??? vendor
??? bootstrap-3.1.1
??? javascript
? ??? bootstrap.js
? ??? bootstrap.min.js
??? stylesheets
??? alerts.less
...
??? variables.less
??? wells.less
Run Code Online (Sandbox Code Playgroud)
我喜欢这个结果.我已经清楚地描述了分布式软件包并且相对容易升级,并且我已将对该软件包的更改分离为可清晰识别的自定义文件.
我在https://github.com/ggascoigne/grails-pipeline-scss上使用了sass-asset-pipeline插件.
| 归档时间: |
|
| 查看次数: |
5345 次 |
| 最近记录: |