0

の下に .swf ファイルがありますvendor/assets/images/swf/。そのフォルダーのアセット パスが必要です。

しかし、これ (.js.coffee.erb)

#= soundmanager2

$ ->
  soundManager.setup
    url: '<%= asset_path "swf/" %>'

これをレンダリングしています(.js):

(function() {
  var $ = jQuery;
  $(function() {
    return soundManager.setup({
      url: '/swf/'
    });
  });
}).call(this);

Rails 4.0.0.rc1 を使用しています。私は開発モードです。パス/assets/swf/soundmanager2.swfは 200 を/swf/soundmanager2.swf返しますが、404 を返します。ヘルパーは をimage_path返しますが/images/swf//images/swf/soundmanager2.swf404 も返します。

4

2 に答える 2

2

ファイルの名前を正しく取得するには、ダイジェストを無効にする必要があるため、問題を起こす価値はありません。したがって、解決策はライブラリを修正することです。Sound Manager 2 の場合は、次のようにしました。

私が必要とするいくつかのCoffeeScript:

#= require soundmanager2

jQuery ->
  soundManager.swfNames =
    "/soundmanager2.swf":              "<%= asset_path('swf/soundmanager2.swf') %>"
    "/soundmanager2_debug.swf":        "<%= asset_path('swf/soundmanager2_debug.swf') %>"
    "/soundmanager2_flash9.swf":       "<%= asset_path('swf/soundmanager2_flash9.swf') %>"
    "/soundmanager2_flash9_debug.swf": "<%= asset_path('swf/soundmanager2_flash9_debug.swf') %>"

  soundManager.setup
    debugMode: <% if Rails.env.development? %>true<% else %>false<% end %>
    url: '/'

私の soundmanager2.js (V2.97a.20130512) のコピーでは、次の定義内にありますnormalizeMovieURL

url = ...                // After url is set

url = sm2.swfNames[url]; // Workaround
于 2013-06-01T04:14:54.903 に答える