【发布时间】:2014-10-29 19:18:05
【问题描述】:
我的 AngularJS 应用程序由两个 url 组成:
-
http://myapp/#/foo http://myapp/#/bar
这是简化的 index.html 文件:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div ui-view></div>
</body>
<script type="text/javascript" src="script.js"></script>
</html>
除了包含应用程序逻辑之外,script.js 文件还包含通过 $templateCache 服务加载的 html 模板。
通过http://myapp/#/foo url,foo html 模板被插入到<div ui-view></div> 元素中。同理,通过http://myapp/#/bar url,bar html 模板被插入到<div ui-view></div>。
我想做的是使用grunt-uncss 任务来减小style.css 的大小。
我的第一次尝试是:
uncss: {
dist: {
files: {
'style.css': [ 'index.html' ]
}
}
style.css 文件已减少,但它不包含 foo 和 bar 页面所需的样式。
我的第二次尝试是使用 deprecated urls parameter 加载 PhantomJS:
uncss: {
options: {
urls; [ 'http://myapp/#/foo', 'http://myapp/#/bar' ]
},
dist: {
files: {
'style.css': [ 'index.html' ]
}
}
同样,style.css 文件已减少,但它不包含 foo 和 bar 页面所需的样式。
有人知道如何解决这个问题吗?
grunt-uncss 仅适用于静态内容吗?
提前致谢,
贝尔纳多·帕切科
【问题讨论】:
-
/foo 和 /bar 都有自己的样式表吗?还是全部包含在 style.css 中
-
@KevinB 不,所有样式都包含在 style.css 文件中
-
我没有看到任何在具有多个路由的角度应用程序上使用此示例的示例,这些路由具有未在前面使用的 css。我认为
urls:选项将是唯一有效的,并且只有当您的 Angular 应用程序处于 html5 模式时才会有效。 -
您的模板是静态文件吗?除了 index.html 之外,您能只指向那些静态文件吗?
-
@KevinB 我将我的 Angular 应用程序转换为 html5 模式并使用
urls参数进行了测试,但它不起作用。我的模板包含简单的模板,只是一些引导类,仅此而已。
标签: javascript angularjs gruntjs