0

ローカルでアプリを開発しています。TableToolsをdataTablesに追加しようとしています。TableToolsボタンはページに適切に表示されますが、効果はありません。swfPathに関するルーティングエラーが常に発生します。

TableToolsをローカルで動作させる正しい方法は何ですか?手伝ってくれてありがとう

application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require dataTables/jquery.dataTables
//= require dataTables/jquery.dataTables.bootstrap
//= require dataTables/extras/TableTools
//= require dataTables/extras/ZeroClipboard
//= require_tree .

users.js.coffee

jQuery ->

  #  Init the table
  $('#users-grid').dataTable
    bjQueryUI: true
    sDom: 'T<"clear"><"fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"lfr>t<"fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"ip>'
    oTableTools:
      sSwfPath: "swf/copy_csv_xls_pdf.swf"
    sPaginationType: "bootstrap"
    bProcessing: true
    bServerSide: true
    sAjaxSource: $('#users-grid').data('source')

サーバーログ

Started GET "/backstage/swf/copy_csv_xls_pdf.swf" for 127.0.0.1 at 2013-02-26 11:48:11 +0100

ActionController::RoutingError (No route matches [GET]   "/backstage/swf/copy_csv_xls_pdf.swf"):
  actionpack (3.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (3.2.1) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.1) lib/rails/rack/logger.rb:26:in `call_app'
  railties (3.2.1) lib/rails/rack/logger.rb:16:in `call'
  quiet_assets (1.0.1) lib/quiet_assets.rb:20:in `call_with_quiet_assets'
  actionpack (3.2.1) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.5) lib/rack/runtime.rb:17:in `call'
 activesupport (3.2.1) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
 rack (1.4.5) lib/rack/lock.rb:15:in `call'
 actionpack (3.2.1) lib/action_dispatch/middleware/static.rb:53:in `call'
 railties (3.2.1) lib/rails/engine.rb:479:in `call'
 railties (3.2.1) lib/rails/application.rb:220:in `call'
 rack (1.4.5) lib/rack/content_length.rb:14:in `call'
 railties (3.2.1) lib/rails/rack/log_tailer.rb:14:in `call'
 rack (1.4.5) lib/rack/handler/webrick.rb:59:in `service'
 C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
 C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
 C:/RailsInstaller/Ruby1.9.3/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'

  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.1/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.0ms)

さまざまなことを試しましたが、結果はありませんでした(app /assetsディレクトリの'media"ディレクトリ、またはassets / backstage /'ディレクトリのswfディレクトリなどをコピーしました)。

どんな助けでも大歓迎です

4

1 に答える 1

8

解決しました!

問題は、ローカルにいくつかの制限を課すFlash(通常どおり)にあります。アプリをウェブサーバーに配置すれば、すべて正常に機能します...しかし、ローカルPCでのみ開発し、ローカルホストをウェブサーバーとして使用する必要がある場合は、フラッシュが大成功を収めます。たくさんグーグルしてたくさん試した後、私は実用的な解決策を見つけました、それが他の誰かのために役立つだろう場合に備えて私はそれを彼女に置きました:

Rails3.2.11とRuby1.9.3(RailsInstallerを介してインストール)を搭載したWindows8を使用しています

1-ローカルでのFlashの制限を回避するには(Flashはローカルファイルのロードを許可しません)http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065および「常に許可」にアクセスします

2-DataTableから「swf」ディレクトリを見つけます(私のものはC:\ RailsInstaller \ Ruby1.9.3 \ lib \ ruby​​ \ gems \ 1.9.1 \ gems \ jquery-datatables-rails-1.11.2 \ vendor \Assets\にありますmedia \ dataTables \ extras \ swf)それをコピーしてアプリ/ public/..に貼り付けます

3sSwfPathをに設定します

sSwfPath: "http://localhost:3000/swf/copy_csv_xls_pdf.swf"

完了しました。すべて機能するはずです。本番環境に渡すときは、sSwfPathを変更することを忘れないでください。

これがお役に立てば幸いです

乾杯

于 2013-02-27T10:07:46.407 に答える