新手问题 关于安装 custom bootstrap theme 的问题

ted · 2015年04月11日 · 最后由 liwei78 回复于 2015年04月12日 · 3013 次阅读

新手向大家请教个问题,我购买了一个定制的 bootstrap 的主题,其中包括了 css, js, images, plugin 四个子文件夹,plugin 里面有 twitter bootstrap, font-awesome 等,请问我是就这样使用它们好呢?还是安装对应的 gem 好呢?

此外,现在我将它们都放在 vendor/assets 里面的,在 production 的时候 vendor/assets 也会一同被 rails 压缩吗?

1、用 gem 就可以,我一般用这几个

# Bootstrap
gem "therubyracer"
gem "less-rails"
gem "twitter-bootstrap-rails"

要确定买的 theme 和安装的 gem,bootstrap 主版本是不是一致,不要有插件兼容问题。我一般把买的 theme 放到 vendor 里。

2、lib/assets 和 vendor/assets 中的静态资源可以引入程序,但不在预编译的范围内。默认编译的文件包括 application.js、application.css 以及 gem 中 app/assets 文件夹中的所有非 JS/CSS 文件(会自动加载所有图片)。

详见 http://guides.rubyonrails.org/asset_pipeline.html 中文在 http://guides.ruby-china.org/asset_pipeline.html

#1 楼 @liwei78 谢谢 liwei,你的教程超赞!不能预编译意思就是 js 和 css 文件都不能被压缩吧?如果想它们被压缩的话是否应当放到 app/assets 里面?

#2 楼 @ted 如果想被压缩(预编译),就把它在 application.js、application.css 里引用。在 app/assets/ 里的文件不会被全部预编译的,如果某个文件独自引用,就加到 config/initializers/assets.rb 里。

谢谢啦,教程我会加油完成后面的部分。

#3 楼 @liwei78 非常感谢,我又去看了下 rails guide 里面的指引 js 的部分都弄明白是怎么引用的了 :)

另外还想请教下,js 文件在 application.js 被引用后,在 html 文件中引用这个 js 路径需要改变吗? 譬如在 html 中原来引用其中一个 js 文件的路径是 <script src="/assets/plugins/isotope/isotope.pkgd.min.js"></script> 后来我在 application.js 中对其加以了引用 //= require plugins/isotope/isotope.pkgd.min 那 html 中的路径需要改变吗?

貌似 html 中的引用路径真是需要改,因为我部署到 heroku 上去后,js 文件都被压缩合并到了 application.js,而其他的 js 文件就被删除了?因为在 chrome 里面看到访问 /assets/plugins/isotope/isotope.pkgd.min.js 直接 404 了

#5 楼 @ted 不是删除,是被压缩成一个文件了。你可以不让它编译,但是这样浏览器不会更新文件了,除非清空浏览器缓存。 静态页面要引用预编译的文件,只能是 config.assets.digest = false (不编辑) 了,或者 js 放到 public 下。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号