Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails 3.1-如何在vendor/assets/javascript中包含外部javascript库?_Javascript_Ruby On Rails 3_Asset Pipeline - Fatal编程技术网

Rails 3.1-如何在vendor/assets/javascript中包含外部javascript库?

Rails 3.1-如何在vendor/assets/javascript中包含外部javascript库?,javascript,ruby-on-rails-3,asset-pipeline,Javascript,Ruby On Rails 3,Asset Pipeline,在多个视图中,我使用以下HTML包含一个外部javascript库: <script type="text/javascript" src="http://static.jstree.com/v.1.0pre/jquery.jstree.js"> </script> 通过阅读Rails 3.1资产管道文档和讨论,我得到的印象是,如果文件应该被引用,vendor/assets/javascripts。我猜我可以下载文件的副本(jstree.js)并将

在多个视图中,我使用以下HTML包含一个外部javascript库:

<script type="text/javascript" 
        src="http://static.jstree.com/v.1.0pre/jquery.jstree.js">
</script>

通过阅读Rails 3.1资产管道文档和讨论,我得到的印象是,如果文件应该被引用,
vendor/assets/javascripts
。我猜我可以下载文件的副本(
jstree.js
)并将其放在该目录中。不过,我想把它从项目现场下载下来,而不是在本地复制

我应该在vendor/assets/javascripts中添加什么来从远程服务器中提取jstree.js的副本?我是否使用某种远程加载代码创建.js文件?关于如何最好地做到这一点,似乎存在着各种各样的方法和/或困惑(请参阅这个问题的答案清单:)


是否有一个“Rails标准”的惯例/库/流程来执行此操作?我是javascript新手,所以请明确,谢谢。

不,您无法将远程文件的“引用”放在资产文件夹中。您可以下载一个副本并放入资产,或者使用
标记引用远程文件


真的,有一份拷贝不是个坏主意。至少,您知道它可以工作,并且文件没有更改(除非您自己更改)。加载远程文件时,可能会发生各种意外:)

谢谢。我想确定我没有遗漏什么明显的东西,你证实了这一点。我不太同意拥有本地拷贝是个好主意(除了在生产中)。图书馆已经学会了拥有永不更改的“稳定”版本,所以我不太担心这一点。如果Rails支持“参考”系统(类似于Gemfile),我就可以更轻松地在dev/test/production中维护各种JS库。我不必手动下载/组织文件,可以避免链轮混乱。对新版本的远程库进行开发/测试将非常容易。我不确定将所有JS文件存储在本地是否始终是一种好的做法。使用第三方服务,如社交按钮,如果他们更改服务,调试可能会让人心痛。对于远程存储的JS文件,Gemfile上的+1@Don甚至可以包括每个部署远程下载它们,但通过链轮在本地为它们提供服务。