Ruby on rails 如何在加载路径中包含供应商库?
我有一个供应商库,它有自己的目录和许多文件(js和css a.o.)。我已将其作为文件夹放置在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中
我的应用程序/供应商/资产/外部库/
中。如何引用此目录中的文件(例如在视图中)
例如,有以下两个文件:
- 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"