【问题标题】:how to handle the image location in css if using grails asset-pipeline plugin?如果使用 grails 资产管道插件,如何处理 css 中的图像位置?
【发布时间】:2014-10-04 11:19:18
【问题描述】:

jquery.flipcountdown.css 文件是:

.xdsoft_flipcountdown.xdsoft_size_lg >.xdsoft_digit{
width:53px; 
height:76px;
background-image:url(./img/digit-lg.png);
}

目录结构是

+flipcountdown-master
 + img
   - digit-lg.png
 - jquery.flipcountdown.css

问题是:在这种情况下如何使用资产管道。

1:css放在assets/stylesheets下,img文件夹放在assets/images文件夹下?可以吗?

2:把css文件和img文件夹都放到assets/stylesheets文件夹里,我很确定可以用,但是asset-pipeline可以gzip吗?

我不擅长 js/css,我花了很多时间阅读 Youtube 上的 Asset-Pipeline 文档和视频,但我仍然不知道如何正确使用它。

提前谢谢

【问题讨论】:

  • 您可以在/assets/ 下添加flipcountdown-master,因为这是第三方库,应该是自包含的。现在由您决定是否应该在application.js中引用或直接使用。
  • 你能给我举个例子吗?

标签: grails asset-pipeline grails-plugin


【解决方案1】:

您可以在这里做一些事情:

如果要利用资产管道插件提供的组织结构,请将.css文件放在assets/stylesheets目录中,将图片放在assets/images目录中,并将./img/digit-lg.png的任何引用更改为digit-lg.png(您也可以指定 /assets/digit-lg.png/assets/images/digit-lg.png 并获得相同的结果)。目录结构如下所示:

├── assets
│   ├── images
│   │   ├── digit-lg.png
│   ├── javascripts
│   └── stylesheets
│       └── jquery.flipcountdown.css

grails 资产管道在解析资产时会忽略顶级图像、javascript 和样式表文件夹,因为它们纯粹用于组织目的。

或者,由于这是一个第三方样式表,最好保持.css 文件不被修改,并保持独立。您可以将flipcountdown-master 目录添加到assets/ 目录或assets/stylesheets/,保持css background-image url 设置为./img/digit-lg.png,一切都会正常工作。这是这种情况下的结构:

├── assets
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── flipcountdown-master
│           └── img
│               └── digit-lg.png
│           └── jquery.flipcountdown.css

资产管道非常灵活,可以让您以最舒适的方式组织资产,但做事的方式不止一种。管道提取的任何文件都可以进行 gzip 压缩。

【讨论】:

  • 如果需要,您可以在assets 下添加flipcountdown-master
  • 是的,我在上面提到过,只是展示了如果将它放在样式表目录下会是什么样子。
【解决方案2】:

Here is the sample app.

特别查看包含外部库的application.jsapplication.css

只需从 github 克隆应用程序,运行应用程序,然后点击索引页面。您应该会在索引页面中看到一个倒计时。

【讨论】:

  • 我向 master 提交了一个“pull request”。这是我想将html更改为gsp页面的真正项目,但是我失败了。我把原始的html源代码放在文件夹source_code中,你能帮我看看使用asset-pipeline的最佳实践吗,因为只有两个页面需要重构,dashboard.gsp和alerts_btns.gsp,有不同的js和 css 文件,我认为如果我将所有文件放在一起,一个 application.js 和一个 application.css 将是巨大的。提前谢谢
  • 你能想出一个例子吗,至少,fork这个示例应用程序(答案中提到的那个)repo并添加你的示例(带有htmls)? @beneo
  • 是的,我fork了示例应用的repo,html页面位于github.com/beneo/grails-asset-pipeline-flipcountdown/tree/…
  • 我不知道如何联系你,如果有什么我能为你做的,请告诉我。非常感谢
  • 我没有机会查看应用程序(正在进行框架升级)并且几乎没有时间。完成临时任务后,今天将查看该应用程序。感谢您的耐心等待。
猜你喜欢
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
  • 2014-09-07
  • 1970-01-01
  • 2015-03-21
  • 2014-08-06
  • 1970-01-01
相关资源
最近更新 更多