1

我使用以下代码在我的 rails 应用程序的特定页面上包含自定义 css 和 javscript。

<% content_for :header do -%>
  <%= stylesheet_link_tag 'mycustompagecssfile' %>
  <%= javascript_include_tag 'customjavascriptfile' %>
<% end -%>

它可以在 localhost 上运行(前提是我在应用程序布局中包含了产量<%= yield(:header) if content_for(:header) %>),但是当我将它推送到 Heroku 时,它会破坏应用程序。

因为那些 css 和 javascript 文件只包含在一个页面上,所以我没有将它们包含在清单文件中(因为我不希望这些样式出现在任何地方),事实上,我删除了require tree代码

//= require jquery
//= require jquery_ujs
//= require common
//= require live-comment-preview
//= require_self

所以我想知道我是否预编译了资产(我需要为 heroku 做这些)然后这些特定于页面的 css 和 javascript 文件没有被预编译,这导致 heroku 应用程序中断(我猜)

heroku 日志说存在内部服务器错误

Processing by HomeController#index as HTML
2013-01-07T17:13:58+00:00 app[web.1]: Completed 500 Internal Server Error in 25ms

请注意,我很确定是资产(而不是 ruby​​ 代码)导致了问题,就好像我在页面中这样做(即删除资产)没有问题

<% content_for :header do -%>

 <% end -%>

谁能告诉我如何预编译那些特定于页面的资产?

4

1 回答 1

2

我必须在 config/environments/production.rb 中预编译特定于页面的资产

config.assets.precompile += [ "pagespecific.js", "pagespecific.css"]
于 2013-01-07T19:48:59.687 回答