如果我有来自 ASP .NET 项目的 Javascrips/CSS 文件,并且我想将它们放入我的 Rails 项目中。把它们放在哪里最好?我需要将每个 url 更改为<%= asset_path "img" %>
吗?
3 回答
根据http://railsapps.github.io/rails-javascript-include-external.html
DRY 和速度的最佳实践(根据上面的文章)是将所有文件下载到您的项目资产文件夹中,将它们放在每个 application.js/.css 的资产管道中,然后让 rails 将它们编译成一个 application.js 和应用程序.css 处于生产模式。有几种方法可以详细执行此操作(请参阅链接)根据文章速度和 DRY 实践的首选方法是从 application.css/.js 调用所有 js 和 css,而不是放置 stylesheet_link_tag,从视图调用 css 或 js -文件。即使您可能有一个特定的 user.js,您只想在用户页面上使用它也是如此。尽管有一些方法可以将特定文件加载到特定视图中(详见文章),但不必在 application.html(.haml/.erb) 的头部调用它们一次:
= stylesheet_link_tag "application", :media => "all"
= javascript_include_tag "application"
如果您在 css 中调用文件,例如。一个图像,只要你在“assets/images”中有图像,你只需要在你的css/js-files中将图像称为'image.jpg'。
将其放入资产文件夹并在视图中添加以下行:
添加 CSS 文件:
<%= stylesheet_link_tag "test.css" %>
添加 JavaScript 文件:
<%= javascript_include_tag 'test.js'%>
基于@Unknown的回答:
是的,您确实需要使用asset_path
sprocket 助手或其中一个 sprocket 助手来引用 CSS 文件中的资产,以便它们正确包含 MD5 指纹。另外,通过这种方式,您可以在开发和生产之间获得正确的资产(因为它们在开发过程中并不存在于公共场所)。以下是相关指南: http: //guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets