2014-11-01 94 views
1

我有一个Rails 4应用程序,由Nginx + Passenger提供服务并利用Rails Asset Pipeline。在部署之前,资产会被预编译并加载到公共/资产文件夹中。Rails资产管道:压缩/缩小的CSS加载,但没有样式文件

当我在浏览器中加载页面时,请求并正确加载压缩和缩小的CSS和JavaScript文件。 JavaScript的工作正常,但页面呈现完全无风格。

下面是相关的环境变量:

  1. 这里是压缩的css文件:http://pastebin.com/SGZmRfiv

  2. 我压缩CSS与YUI压缩机:config.assets.css_compressor = :yui

  3. 的图片通过Chrome调试器压缩的css文件的内容类型:content type correct

  4. 我现在用的是漂亮的轨道资产鲍尔-PACKAGE-NAME (https://rails-assets.org/)宝石加载凉亭包作为资产:gemfile showing gems used to load nifty bower packages

  5. 这里是我的公共/资产的文件夹的截图:public/assets directory

  6. 资产加载页面加载:assets on page load

更新:我想,也许我的问题是从Rails-Assets gem而产生。我的应用程序.css文件:

*= require_self 
*= require font-awesome 
*= require vendors 
*= require bootstrap 
*= require sweetalert 
*= require jquery-ui 
*= require_tree . 

回答

1

花了我差不多一个星期,但我终于找到了一个可以接受的解决方案。

第一步,意识到css压缩过程出了问题。我发现了这一点,因为我已经从配置文件中删除了这一行: config.assets.css_compressor = :yui。一旦被移除,css_compressor就会回到它的默认压缩器,这是很糟糕的。

现在,做rake assets:precompile的时候,我得到以下错误:

➜ stylesheets git:(master) ✗ rake assets:precompile 
(in /home/ubuntu/spice-conduit) 
rake aborted! 
Sass::SyntaxError: Invalid CSS after " filter: progid": expected ";", was ": DXImageTransf..." 
    (in /home/ubuntu/spice-conduit/app/assets/stylesheets/application.css) 
(sass):3566 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1147:in `expected' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1085:in `expected' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1080:in `tok!' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:586:in `block in declaration_or_ruleset' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1123:in `call' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:1123:in `rethrow' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:592:in `declaration_or_ruleset' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:554:in `block_child' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:546:in `block_contents' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:535:in `block' 
/home/ubuntu/.rvm/gems/ruby-2.1.3/gems/sass-3.2.19/lib/sass/scss/parser.rb:52 

它看起来像压缩机不喜欢某些微软相关的梯度CSS规则。

FIX 我删除了几个BOWER风格的资产宝石,并将其替换为特定于导轨的宝石。我的新宝石文件看起来像这样: enter image description here 正如你所看到的,我现在用的导轨引导的字体真棒宝石

我application.css文件现在看起来是这样的兼容特定链轮:

11 *= require_tree . 
12 *= require_self 
13 *= require font-awesome 
14 *= require vendors 
15 *= require bootstrap 
16 *= require sweetalert 
17 *= require jquery-ui 
18 */ 

并且我添加了一个名为app.scss的新文件。CSS在app /资产/样式表目录: enter image description here

摘要:通过去除几个“轨资产鲍尔-PACKAGE”风格的宝石,并与上海社会科学院取而代之/链轮兼容和轨道特定的宝石,现在rake assets:precompiles作品和浏览器正确显示服务的CSS .....