1

Rails 2.3.8 から Rails 3.2.6 に移植しようとしています。私のアプリは現在、配置されているサードパーティの css/js/images を使用していますpublic/<3rdparty>/<subdir>/../..

ではlayout/application.html.erb、絶対パスを使用してそれらを取得しました。例えば<%= stylesheet_link_tag "/dojoroot/dojo/resources/dojo.css" %><%= javascript_include_tag "/dojoroot/dojo/dojo.js" %>

app/assetsRails 3.2.6 の場合、アセットはまたはにあると予想されますlib/assets。ただし、サードパーティを public から app/assets に移動しても機能しません。これは、タグがそれぞれのタイプでアセットを探しているためです。たとえば、<%= stylesheet_link_tag "dojoroot/dojo/resources/dojo.css" %>は を参照しapp/assets/stylesheet/dojoroot/dojo/resources/dojo.csc、同様に JavaScript は を参照しapps/assets/javascripts/dojoroot/dojo/dojo.jsます。サードパーティをスタイルシート/JavaScript/画像の 3 つのサブディレクトリに分割するのは、かなり無駄で時間がかかるようです。

タグに絶対パスを渡すと、たとえば<%= javascript_include_tag "/dojoroot/dojo/dojo.js" %>、Rails は app/assets/dojoroot でそれを見つけられません。

「スタイルシート」、「javascript」をパスに挿入せずにRailsにアセットを検索させる構成はありますか?

4

1 に答える 1

1

ファイルに名前を付けるだけで、パスはありません

<%= stylesheet_link_tag "dojo" %>

複数を参照したい場合は、次のことができます

<%= stylesheet_link_tag "dojo", "custom" %>

また、 app/assets/javascript/application.js にあることを確認してください

//= require jquery
//= require jquery_ujs
//= require_tree . 

そして<%= javascript_include_tag(:application) %>あなたのapplication.html.erb

http://edgeguides.rubyonrails.org/asset_pipeline.htmlの「2.1.2 インデックス ファイルの使用」を参照してください。

于 2012-07-19T22:19:54.387 に答える