我正在开发一个Rails应用程序(v4.2.1),它在vendor/assets/components/bootstrap
上安装了一个引导程序。
在我将引导程序从v3.3.4升级到v3.3.5之前,情况进展顺利。
现在我看到一个显示couldn't find file 'bootstrap' with type 'text/css'
的错误页面。
这是我的app/assets/stylesheets/application.css
:
/*
*= require_tree .
*= require bootstrap
*= require fontawesome
*= require_self
*/
如果我将引导程序降级到v3.3.4,则此错误消失。有什么建议吗?
[UPDATE]
我使用bower install
命令安装了boostrap。以下是我的.bowerrc
:
{ "directory": "vendor/assets/components" }
我有一个像这样的目录树:
vendor + assets + components + bootstrap + dist + fonts + grunt + js + less + .bower.json + ...
链轮的版本是3.2.0。我还使用了sprockets-rails 2.3.2和sprockets-es6 0.6.2。
答案 0 :(得分:1)
我找到了问题的原因。
自bower.json
起,自举团队更改了v3.3.5
的主部分。之前,它有这些项目:
"less/bootstrap.less",
"dist/css/bootstrap.css",
"dist/js/bootstrap.js",
"dist/fonts/glyphicons-halflings-regular.eot",
"dist/fonts/glyphicons-halflings-regular.svg",
"dist/fonts/glyphicons-halflings-regular.ttf",
"dist/fonts/glyphicons-halflings-regular.woff",
"dist/fonts/glyphicons-halflings-regular.woff2"
现在它只有两个项目:
"less/bootstrap.less",
"dist/js/bootstrap.js"
我们可以关注https://github.com/twbs/bootstrap/issues/16663的相关讨论。简而言之,他们根据新的凉亭规格https://github.com/bower/bower.json-spec/pull/43应用了这一变化。目前,Sprockets只能找到bower.json
的主部分中列出的文件。这是我的问题。
因此,对于解决方法,我改变了我的application.css
:
/*
*= require_tree .
*= require bootstrap/dist/css/bootstrap
*= require fontawesome
*= require_self
*/
根本的解决方案是对https://github.com/rails/sprockets的拉取请求。