在rails中加载外部javascript

时间:2011-11-21 15:15:38

标签: javascript ruby-on-rails

我想通过在js中注入脚本元素和文件的src来并行下载javascript文件

:javascript
  var script = document.createElement("script");
  script.src = "/javascript/some_javascript_file.js";
  script.type = "text/javascript"
  $("head").append(script)

.... (使用haml,jquery ..)

在rails中通过firebug我得到一个404文件未找到,看起来像这样

获取http://localhost:3000/javascript/%5object%20HTMLScriptElement%5D 404未找到

..我看到其他js文件通过javascript_include_tag加载正常加载

获取http://localhost:3000/javascript/another_js_file.js?1221321321 ...

我知道rails会在js文件中添加版本号以进行版本控制。因为这个原因我不能动态加载js吗?我还注意到脚本名称也被混淆了(%5object%20HTMLScriptElement%5D)。这样做有轨道吗?我看过网上找不到任何东西。

我刚注意到404的url与我在src中指定的不同。在src我有“/rails/javascripts/javascript_file.js”,但在404错误中它被列为从http://localhost.admeld.com:3000/rails/some_namespace/%5Bobject%20HTMLScriptElement%5D获取文件

编辑: jquery getScript调用有效。

$.getScript('/rails/javascripts/javascript_file.js', function(data, textStatus){
   console.log(data); //data returned
   console.log(textStatus); //success
   console.log('Load was performed 0.');
});

1 个答案:

答案 0 :(得分:0)

试试这个:

   :javascript
      var script = document.createElement("script");
      script.src = "/javascript/some_javascript_file.js";
      script.type = "text/javascript"
      $("head").get(0).appendChild(script);