我正在学习 Rails,并且想使用 Rails 和 Twitter Bootstrap。我的 Rails 项目布局是:
├─assets
│ ├─images
│ ├─javascripts
│ └─stylesheets
├─controllers
├─helpers
├─mailers
├─models
└─views
├─course
└─layouts
Twitter Bootstrap 布局是:
├─css
├─img
└─js
我知道 Bootstrap css 文件引用了它的图像文件,例如:
[class*=" icon-"] {
display: inline-block;
width: 14px;
height: 14px;
*margin-right: .3em;
line-height: 14px;
vertical-align: text-top;
background-image: url("../img/glyphicons-halflings.png");
background-position: 14px 14px;
background-repeat: no-repeat;
margin-top: 1px;
}
所以它们必须保留相对位置,否则我必须更改 CSS 文件。我想知道,如果我不想使用任何 Bootstrap 相关的 gem,将这些 Bootstrap 文件放入我的 Rails 项目中的最佳方法是什么?谢谢。
首先,您可能应该将 Bootstrap 源文件移动到 Rails 应用程序中的 asset 文件夹中的适当位置 - 即 CSS 文件stylesheets
文件夹中,JS在javascripts
,以及图像images
.
如前所述,您需要更改 Bootstrap CSS 中图像的路径。但是,如果您计划在生产中使用您的应用程序,则需要使用 Rails 的资产路径助手。
例如,background-image: url('../images/glyphicons-halflings.png');
使用资产管道时绝对不正确。这在开发中可以正常工作,但是一旦您为生产环境预编译资产,事情就不起作用了 - Rails 出于缓存目的将指纹附加到资产文件名中,这使得上面的 URL 不正确。
在资产中编码路径的正确方法概述于资产管道的 Rails 指南。如果您仅使用 CSS,则应该添加.erb
扩展名到你的文件名(以获得bootstrap.css.erb
)并做这样的事情:
background-image: url(<%= asset_path 'glyphicons-halflings.png' %>);
如果您使用SASS/SCSS,还可以使用内置的asset-path
or image-path
帮手。同样,我在上面链接的指南中提到了这一点。
最后,您可能应该使用 gem,因为这项工作已经为您完成了。但是,如果你必须的话,这应该足够有效。当然,如果您想更新 Bootstrap,则必须再次执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)