Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.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
Ruby on rails 如何在加载路径中包含供应商库?_Ruby On Rails_Ruby On Rails 4_Asset Pipeline - Fatal编程技术网

Ruby on rails 如何在加载路径中包含供应商库?

Ruby on rails 如何在加载路径中包含供应商库?,ruby-on-rails,ruby-on-rails-4,asset-pipeline,Ruby On Rails,Ruby On Rails 4,Asset Pipeline,我有一个供应商库,它有自己的目录和许多文件(js和css a.o.)。我已将其作为文件夹放置在我的应用程序/供应商/资产/外部库/中。如何引用此目录中的文件(例如在视图中) 例如,有以下两个文件: my_app/vendor/assets/external_library/editor.js 我的应用程序/供应商/资产/外部库/contents.css 为了使用这些,我添加了: 在application.js中:/=require editor 在application.css.scss中

我有一个供应商库,它有自己的目录和许多文件(js和css a.o.)。我已将其作为文件夹放置在
我的应用程序/供应商/资产/外部库/
中。如何引用此目录中的文件(例如在视图中)

例如,有以下两个文件:

  • my_app/vendor/assets/external_library/editor.js
  • 我的应用程序/供应商/资产/外部库/contents.css
为了使用这些,我添加了:

  • 在application.js中:
    /=require editor
  • 在application.css.scss中:
    @import“contents”
  • 在我看来:

它会在开发中加载视图页面。但是当我转到页面的源代码并单击指向js文件的链接时,它无法找到该文件。我做错什么了吗?

将此添加到您的
应用程序.rb
文件中:

config.assets.paths << Rails.root.join('vendor', 'assets')
和application.css.scss:

@import "external_library/contents";
在您看来,您只需具备以下条件:

= stylesheet_link_tag    "application", media: "all"
= javascript_include_tag "application"

谢谢如果我只希望文件包含在一个特定视图中(因为它只与一个特定视图相关,所以为什么要为所有视图加载它…),该怎么办?我还发现了这个帖子:。其中一个答案还建议编辑
config.assets.path
,但另一个答案获得了更多的选票。哪一个是更好的解决方案?没问题。通常我不会担心每个视图都有不同的CSS文件。使用好的类名(您可以使用
flutie
gem自动为每个页面指定不同的类),Rails将为您生成一个大型application.css文件。由于HTTP的工作方式,这个大型css文件可以下载一次,然后在每个页面上缓存和重用,因此它实际上工作得更快。看看这个答案:再次感谢刘易斯。我特别指的是js文件。此文件仅在一个特定视图中需要。我还想知道添加到assets.path的行。这真的有必要吗?特别是,因为我提到的帖子中的答案似乎不需要对资产路径进行更改。\n如果你真的想这样做,我想你可以绕过资产管道,将JS文件放在你的
public
目录中,但我真的不推荐这样做。然后在视图中使用
= stylesheet_link_tag    "application", media: "all"
= javascript_include_tag "application"