没有路线匹配[GET]" /find_user.png"

时间:2014-08-12 10:16:57

标签: ruby-on-rails

我在新的rails应用程序中使用angularjs。我将angularjs html文件放在app/assets/angular/templates中,并将cssjs文件放在app/vender中。现在,当我运行项目时,cssjs文件加载正确,但我不知道如何使用图片。我把我的图像放在html文件之外,但是当我运行项目时,我在chrome console中得到以下错误:

ailed to load resource: the server responded with a status of 404 (Not Found) 

assets/angular/templates/index.html

<li class="text-center">
    <img src="find_user.png" class="user-image img-responsive"/>
</li>

image path

assets/angular/templates/find_user.png

server log

Started GET "/find_user.png" for 127.0.0.1 at 2014-08-12 14:41:09 +0430

ActionController::RoutingError (No route matches [GET] "/find_user.png")

我在config/application.rb设置了root,但我又得到了错误:

config.assets.paths << Rails.root.join("app","assets","angular","templates")

如何在html文件中使用我的图像?

3 个答案:

答案 0 :(得分:1)

将图片放入路径“public /”

您将能够分离模板和服务器,但在行img src='find_user.png'中它正在当前服务器上查找图像

答案 1 :(得分:1)

如果您仍想从资产下的自定义文件夹中获取图像。您使用未更改的application.rb。但现在你需要追加&#34; / assets /&#34;在图像src。像

<li class="text-center">
   <img src="/assets/find_user.png" class="user-image img-responsive"/>
</li>

因为如果您直接将图像文件放在公共文件夹中,它将正常工作,但您没有在生产模式下的预编译资产中获取这些图像。

答案 2 :(得分:0)

您可以尝试将文件重命名为assets / angular / templates / index.html.erb并使用<%= image_tag "find_user.png" %>