0

我有两组不同的 CSS 文件,我想将它们用于由 heroku 托管的同一个网站。

第一组 CSS 文件是转换为 SASS 的标准 Twitter BootStrap CSS 文件。第二组是我的应用程序的自定义设置。

我已经能够在我的开发服务器上获得正确的外观,但是当我将它上传到 heroku 时,输出只是

<body>
<head>
</head>
</body>

请帮忙!

我的网站配置如下:

http://imgur.com/S5Aoov1&V3RNQZ3&lSJqpCz&jdSfy82

我的控制布局文件是:

doctype 5
 html data-uuid=current_user.try(:id)
  = render 'head'
  = render 'third_party_scripts'


 body class=controller_name
  = render 'navbar'
  = render partial: 'account/infobar'
   .container
   = render partial: 'flash', locals: { flash: flash }
   = yield

我复制了这个文件并将其命名为“_home.html.slim”,我将内容更改为:

head
 title = t('.title', default: 'My Winning Trade')
  = stylesheet_link_tag 'home', media: 'all'
  = stylesheet_link_tag 'justified-nav', media: 'all'
  = stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Shanti|Open+Sans:400,700,800'
  = javascript_include_tag 'jquery'
  = csrf_meta_tags

我的登陆页面的 CSS 名为 home & justified-nav,基于 twitter bootstrap 提供的 jumbotron 示例。http://getbootstrap.com/examples/jumbotron/

资产预编译后的 Heroku 错误日志:

2013-10-04T19:48:42.124903+00:00 app[web.1]: Completed 500 Internal Server Error in 384ms
2013-10-04T19:48:42.127966+00:00 app[web.1]:     3:   = stylesheet_link_tag 'home', media: 'all'
2013-10-04T19:48:42.127966+00:00 app[web.1]: 
2013-10-04T19:48:42.127966+00:00 app[web.1]:     1: head
2013-10-04T19:48:42.127966+00:00 app[web.1]:   app/views/layouts/sessions.html.slim:3:in `_app_views_layouts_sessions_html_slim__3803347664834042281_69939052542640'
2013-10-04T19:48:42.127966+00:00 app[web.1]:     2:   title = t('.title', default: 'My Winning Trade')
2013-10-04T19:48:42.128146+00:00 app[web.1]: 
2013-10-04T19:48:42.127966+00:00 app[web.1]: ActionView::Template::Error (home.css isn't precompiled):
2013-10-04T19:48:42.127966+00:00 app[web.1]:     4:   = stylesheet_link_tag 'justified-nav', media: 'all'
2013-10-04T19:48:42.127966+00:00 app[web.1]:     5:   = stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Shanti|Open+Sans:400,700,800'
2013-10-04T19:48:42.127966+00:00 app[web.1]:     6:   = javascript_include_tag 'jquery'
2013-10-04T19:48:42.127966+00:00 app[web.1]:   app/views/application/_home.html.slim:3:in `_app_views_application__home_html_slim___3730913017080964654_69939053460220'
2013-10-04T19:48:42.128146+00:00 app[web.1]: 
4

2 回答 2

0

问题最终是 home.css 文件未在 heroku 服务器端编译。

通过更改 production.rb 文件设置:

从:

config.assets.compile = false

至:

config.assets.compile = true

@Manishie 建议的布局配置有效!

谢谢大家!

于 2013-10-04T20:04:06.153 回答
0

我不确定我是否完全理解你在问什么。但这听起来像:

  • 您有一个布局文件。
  • 您想在一组视图中加载一组样式表
  • 在另一组视图中,您希望另外加载第二个样式表。

那是对的吗?如果是这样,你不能在你的布局中做这样的事情:

doctype 5
  html data-uuid=current_user.try(:id)
    = render 'head'
    = render 'head_foobar' if controller_name == 'foobar'
于 2013-10-04T03:22:19.070 回答