在rails项目中将外部资产放在ruby中的位置?

时间:2013-09-01 20:14:54

标签: ruby-on-rails asset-pipeline

如果我有来自ASP .NET项目的Javascript / CSS文件,我想把它们放在我的Rails项目中。把它们放在哪里最好的地方?我是否需要将每个网址更改为<%= asset_path "img" %>

3 个答案:

答案 0 :(得分:0)

将其放入资源文件夹并在视图中添加以下行:

添加CSS文件:

<%= stylesheet_link_tag "test.css" %>

添加JavaScript文件:

<%= javascript_include_tag 'test.js'%>

答案 1 :(得分:0)

以@Unknown的答案为基础:

是的,您需要使用asset_path或其中一个链轮助手来引用CSS文件中的资源,以便它们正确包含MD5指纹。此外,通过这种方式,您可以在开发和生产之间获得正确的资产(因为它们在开发过程中不会在公共场合生活)。以下是相关指南:http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets

答案 2 :(得分:0)

根据http://railsapps.github.io/rails-javascript-include-external.html

干燥和速度的最佳实践(根据上面的文章)是将所有文件下载到项目资产文件夹中,将它们放在每个application.js / .css的资产管道中,然后让rails将它们编译到一个应用程序中。生产模式下的js和application.css。有几种方法可以详细地做到这一点(参见链接)根据文章的速度和DRY实践的首选方法是从application.css / .js调用所有js和css而不是调用stylesheet_link_tag,从视图调用css或js -files。即使您可能只有一个特定的user.js,您只想在用户页面上使用它。虽然有办法将特定文件加载到特定视图中(有关详细信息,请参阅文章) Ecxept必须在application.html(.haml / .erb)的头部调用它们一次:

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

如果你在css中调用文件,例如。一个图像,只要你有“资产/图像”中的图像,你只需要在css / js文件中将图像称为“image.jpg”。