这里是 Grails 2.4.5,我相信(如果我错了请纠正我)asset-pipeline
插件是管理 CSS/JS 资源的默认/所需方法。
我有一些自定义 CSS/JS 文件,我想将它们包含在我的 GSP 页面的大部分中,并且想知道如何添加它们:
- 使用
asset-pipeline
插入;但是…… - 我可以(以某种方式)从
grails-app/views/layouts/special.gsp
引用它们,然后引用special.gsp
每个所需的 GSP 页面内的布局。
再次重申,所需的功能是:
grails-app/views/layouts/special.gsp:
-------------------------------------
<!DOCTYPE html>
<html>
<head>
<title><g:layoutTitle default="My app!"/></title>
<asset:stylesheet src="my-custom.css"/>
<g:layoutHead/>
</head>
<body>
<g:layoutBody/>
<asset:javascript src="my-custom.js"/>
</body>
</html>
然后,在我想使用此布局的任何 GSP 页面中,我只需添加一个 <meta name="layout" content="special">
在<header>
像平常一样标记。
我如何使用 asset-pipeline
和布局相互协调? 我在哪里放置 my-custom.css
和 my-custom.js
?这里有什么特别说明吗?
最佳答案
如果你要离开你的 special.gsp
原样:
- 你会把
my-custom.css
在grails-app\assets\stylesheets
内文件夹 - 你会把
my-custom.js
在grails-app\assets\javascripts
内文件夹
根据您的 IDE,assets
文件夹可能位于顶层,而且它位于 grails-app
中可以抽象。例如,使用 GGTS 中的“Project Explorer” View ,有一个 assets
文件夹直接在我的元素下。
使用 Assets 管道,您还可以使用以下语法将这些文件包含在“父”文件中:
//= my-custom.js
或
/*
*= require my-custom.css
*/
这个“父”文件需要像您所做的那样包含在布局中。
附加信息:
我提到了 require_self
和 require_tree
在下面的评论中,我将进一步详细介绍它们的使用。
require_self
myLayout.gsp
<asset:javascript src="myParent.js"/>
myParent.js
//= myCustom.js
//= require_self
console.log("This code runs because of the require_self and after myCustom.js");
myCustom.js
console.log("My require_self is optional because I'm not using the asset-pipeline.");
require_self
用于包含存在于特定文件中的 js/css;使用 Assets 管道导入其他 js/css 文件的文件需要它。当文件严格为已导入的 js/css 时,它是可选的。这就是您可以使用 asset-pipeline
的原因导入您未修改的文件(例如 jquery.js),否则您需要放置 require_self
在所有文件中。
require_tree
目录结构
grails-app/assets/
|
+--javascripts/
| |
| +--js-parent.js
| |
| +--myCustomJs
| |
| +--script1.js
| |
| +--script1.js
|
+--stylesheets/
|
+--css-parent.css
|
+--myCustomCss
|
+--sheet1.css
|
+--sheet2.css
|
+--sheet3.css
myLayout.gsp
<asset:javascript src="js-parent.js"/>
<asset:stylesheet src="css-parent.css"/>
js-parent.js
//= require_tree myCustomJs
csss-parent.css
/*
*= require_tree myCustomCss
*/
你去吧,现在你有所有 3 个 css 文件和 2 个 js 文件,只使用它们的 parent 和 require_tree
语法。
关于javascript - 如何将自定义 CSS/JS 添加到 Grails 2.4.x 布局/模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33284024/