6

application.jsファイルroot_pathにあるプロジェクトを入手するにはどうすればよいですか?

他のJSファイルをロードする必要があるjsプラグイン(codemirror )に必要です。「/javascripts/needed_file.js」と言っても問題ありませんが、プロジェクトを「/custom」にデプロイするとどうなりますか。

コードはプロジェクト全体で魔法をかける必要があり、UJSにしたいので、静的なjavascriptファイルに含める必要があります。

解決策/簡単なハックはありますか?

4

3 に答える 3

6

美しい解決策はありません。私はこれらのアプローチの1つを試してみます:

  • 検査しwindow.location.pathnameます。これから、ルートから実行するかプレフィックスURLから実行するかを決定します。

  • <script type="text/javascript" charset="utf-8">var ROOT_PATH = '<%= Rails.root_path %>';</script>レイアウトファイルの先頭に次のようなものを追加します。

  • この非常にハックな関数を使用してください(HTML5スクリプト属性の一部で機能しなくなる可能性があります)。

    function urlOfCurrentFile() {
      var scripts = document.getElementsByTagName("script");
      return scripts[scripts.length - 1].src;
    }
    
于 2011-01-24T21:49:07.883 に答える
1

これはヘッダーファイルにあります。

<script type="text/javascript">
  var BASE_URL = '<%= root_url %>';
</script>
于 2013-03-27T09:29:13.307 に答える
1

さて、私が見つけた最善の方法は、JSの力を活用してそうすることです。

window.location.origin # http://localhost:3000/

完全なホスト名と、、http://およびポート番号が表示されます。Railsサーバーをローカルで実行する場合と同様に、次のようになります。http://localhost:3000

window.location.hostname # localhost

ホストの名前だけが表示され、ポートやHTTPについては何も表示されません。Railsサーバーがローカルで実行されている場合は、次のようになりますlocalhost

于 2016-11-21T14:54:05.540 に答える