Sprockets 在找到 v3.3.4 时找不到 bootstrap v3.3.5
Sprockets can't find bootstrap v3.3.5 while it finds v3.3.4
我正在开发 Rails 应用程序 (v4.2.1),它在 vendor/assets/components/bootstrap
.
上安装了 bootstrap
一切顺利,直到我将 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
*/
如果我将 bootstrap 降级到 v3.3.4,这个错误就会消失。有什么建议吗?
[更新]
我使用 bower install
命令安装了 boostrap。以下是我的.bowerrc
:
{
"directory": "vendor/assets/components"
}
我有一个这样的目录树:
vendor
+ assets
+ components
+ bootstrap
+ dist
+ fonts
+ grunt
+ js
+ less
+ .bower.json
+ ...
sprockets版本为3.2.0。我还使用 sprockets-rails 2.3.2 和 sprockets-es6 0.6.2.
我找到问题的原因了。
从 v3.3.5
开始,bootstrap 团队更改了 bower.json
的 main 部分。之前,它有这些项目:
"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. Put simply, they applied this change in accordance with the new bower specs https://github.com/bower/bower.json-spec/pull/43上的相关讨论。目前,Sprockets 只能找到 bower.json
的 main 部分中列出的文件。那是我的问题。
因此,为了解决这个问题,我将 application.css
更改为:
/*
*= require_tree .
*= require bootstrap/dist/css/bootstrap
*= require fontawesome
*= require_self
*/
一个基本的解决方案是对 https://github.com/rails/sprockets.
的拉取请求
我正在开发 Rails 应用程序 (v4.2.1),它在 vendor/assets/components/bootstrap
.
一切顺利,直到我将 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
*/
如果我将 bootstrap 降级到 v3.3.4,这个错误就会消失。有什么建议吗?
[更新]
我使用 bower install
命令安装了 boostrap。以下是我的.bowerrc
:
{ "directory": "vendor/assets/components" }
我有一个这样的目录树:
vendor + assets + components + bootstrap + dist + fonts + grunt + js + less + .bower.json + ...
sprockets版本为3.2.0。我还使用 sprockets-rails 2.3.2 和 sprockets-es6 0.6.2.
我找到问题的原因了。
从 v3.3.5
开始,bootstrap 团队更改了 bower.json
的 main 部分。之前,它有这些项目:
"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. Put simply, they applied this change in accordance with the new bower specs https://github.com/bower/bower.json-spec/pull/43上的相关讨论。目前,Sprockets 只能找到 bower.json
的 main 部分中列出的文件。那是我的问题。
因此,为了解决这个问题,我将 application.css
更改为:
/*
*= require_tree .
*= require bootstrap/dist/css/bootstrap
*= require fontawesome
*= require_self
*/
一个基本的解决方案是对 https://github.com/rails/sprockets.
的拉取请求