我对Rails很陌生,我不确定在添加资产时最佳做法是什么。
有人能告诉我在资产中使用Javascripts与使用相应的gem相比的优点和缺点吗?
我找到几乎所有我想要使用的javascript库的gems。例如,IntroJS。我应该使用gem还是下载javascript并在我的资产中拥有库?
答案 0 :(得分:3)
如果gem没有提供任何助手或生成器,那么通常只是方便,您可以通过Gemfile轻松更新资产的版本。这很好,只要宝石本身在版本上与实际来源相对较近。
我通常从宝石开始,确保它定期更新,然后如果我真的需要移动到源。
我最近也开始在某些JS源代码中使用bower,并且有一个补充bower-rails gem,它提供了一些类似Bundler的功能。真的很甜蜜!
答案 1 :(得分:2)
我更喜欢使用直接javascript源vs gem,因为:
答案 2 :(得分:1)
我使用gem只有一个原因:
您需要更新Javascript库,这种情况经常发生。如果将JS库直接引入应用程序,则在提交时代码库将被污染不必要的信息。
使用宝石。如果它不存在,创建一个,这很简单。如果当前gem未更新,请发送拉取请求或使用fork。
答案 3 :(得分:1)
这是针对专业人士与缺点列表的尝试。
Gemfile
中。在项目中添加Gem会更快更清洁。比较:
Gemfile
$ bundle install
require
在application.js
require
application.js
。
Gemfile
和assets
目录。对于具有与之关联的维护良好的Gem的Javascript库,请使用Gem。对于没有Gem的Javascript库,将lib复制到资源,但保持整体。通过将覆盖放在单独的文件中来自定义库。
这应该使库升级尽可能轻松。
另外,在你的application.js中,为了清楚起见,在(宝石或资产)中添加一条评论,说明你在哪里包括图书馆。
答案 4 :(得分:0)
当您使用资产管道时,您的用户的浏览器只会提出一个获取javascript的请求
当您手动添加jquery时,通过提供CDN的链接,用户已经下载了jquery并且不需要再次下载它的好机会
我也是rails的新手,想知道更多=)
<强>更新强> 在我的项目中有很多js,所以我去了宝石和一个请求所有的js。更容易(对我来说)更新一堆Gemfile而不是潜入每个项目的来源