1

//= require <lib>とは別のファイルから使いたい/app/assets/javascripts/application.js。これにより、アセットのコンパイル エラーが発生しますが、問題はパスが正しくないことです。https://github.com/rusanu/test-emberで入手できる問題を示す単純化されたプロジェクトを作成しました。

レイアウトで:

<head>
  <title>TestEmber</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= yield :head %>
  <%= csrf_meta_tags %>
</head>

ビューで:

<%= content_for :head do %>
<%= javascript_include_tag "dashboard/dashboard", :cache => 'dashboard' %>
<% end %>

と私のダッシュボード/dashboard.jsで:

//= require handlebars
//= require ember
//= require ember-data
//= require_self

これによりエラーが発生します。

Showing /home/rremus/test-ember/app/views/dashboard/show.html.erb where line #2 raised:

No such file or directory - Asset file not found at '/home/rremus/test-ember/public/home/rremus/.rvm/gems/ruby-2.0.0-p0/gems/handlebars-source-1.0.0.rc4/dist/handlebars.js'
Extracted source (around line #2):

1: <%= content_for :head do %>
2: <%= javascript_include_tag "dashboard", :cache => 'dashboard' %>
3: <% end %>
4: 
5: <h1>Dashboard#show</h1>

アセット パスがプロジェクトのパブリック ディレクトリ ( /home/rremus/test-ember/public) で構成されており、正しいアセット パス ( /home/rremus/.rvm/...) が追加されているため、パスが正しくないことに注意してください。

4

1 に答える 1

2

私の推測では、アセット パイプラインの Rails ガイドに基づいて、キャッシュ ディレクティブを使用して動作させるには、特別な体操を行う必要があると思います。

キャッシュ ディレクティブを捨てて、プリコンパイルに依存してファイルの組み合わせを処理すると、エラーなく動作するように見えます。

于 2013-05-26T02:14:01.517 に答える