Rails资产目录未指向布局中指定的目录

时间:2014-07-15 17:43:29

标签: javascript css ruby-on-rails path assets

在应用程序布局中,我指向public / assets / ...目录中的资产(js,css和img)。例如:

<link href='assets/images/meta_icons/apple-touch-icon-144x144.png' rel='apple-touch-icon-precomposed' sizes='144x144'>
<script src="assets/javascripts/plugins/modernizr/modernizr.min.js" type="text/javascript"></script>

但是当加载页面localhost / quotes / show时,它正在查找quotes / assets / ...而不是资产/ ...的资产 顺便说一下,当加载页面localhost / quotes时,资产被完全加载并且正在检查assets / ...目录而不是quotes / assets / ... one

我该如何解决这个问题? 感谢

2 个答案:

答案 0 :(得分:0)

在引用代码中的资源时,不应使用assets目录的完整路径。而是根据需要使用stylesheet_link_tagjavascript_include_tagasset_pathimage_tag。这将自动解析Asset管道创建的正确路径。看到 有关更深入的解释,请参阅http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets

答案 1 :(得分:0)

他们制作资产标签助手,如果使用链轮或其他任何东西,通常会需要这些助手。在不知道您的版本的情况下,我可以假设您正在使用Rails 4.1+。就这些而言,例如SLIM。

= favicon_link_tag '/assets/favicon.ico'
meta name="viewport" content="width=device-width, initial-scale=1"
= stylesheet_link_tag 'application', media: 'all'
= javascript_include_tag 'application'

因此,就您的示例而言,favicon链接标记最接近。它也需要选择。

以下是文件:http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html