Ruby on rails 资源管道路由帮助程序解析为错误的URL或路径

Ruby on rails 资源管道路由帮助程序解析为错误的URL或路径,ruby-on-rails,asset-pipeline,Ruby On Rails,Asset Pipeline,由于某种原因,除了image\u tag之外,我的所有资产助手都有问题。它们都在生成错误的路径。我正在使用Rails 4.0.0和Ruby 2.0.0。我的图像位于/app/assets/images e、 g asset_url('this.png')#->/this.png 资产路径('this.png')#->/this.png image_url('this.png')#->/images/this.png image_path('this.png')#->/images/this.pn

由于某种原因,除了
image\u tag
之外,我的所有资产助手都有问题。它们都在生成错误的路径。我正在使用Rails 4.0.0和Ruby 2.0.0。我的图像位于
/app/assets/images

e、 g

asset_url('this.png')#->/this.png
资产路径('this.png')#->/this.png
image_url('this.png')#->/images/this.png
image_path('this.png')#->/images/this.png
图像url('this.png')#->/images/this.png
资产url('this.png')#->/this.png

image_标记('this.png')#->image_路径已被弃用。请检查

对于image\u标记,明确表示
返回源的HTML图像标记。源文件可以是完整路径或文件。
所以在这种情况下,它指向的路径是
/assets/file\u name.png

而对于**image\u path**
计算公共图像目录中图像资产的路径。将通过文档根目录的完整路径`
路径是/images/filename.png

我和你有同样的问题。我遵循并通过清除
tmp
缓存解决了这个问题

$ rake tmp:cache:clear

希望有帮助。

我在开发新的Rail 4.2.1应用程序时也遇到了这个问题。我有:

正文
{
背景:#EFEF图像url('layouts/background.jpg')无重复顶部中心固定;
}
SASS很高兴地产生了:

正文
{
背景:#EFEFURL('/images/layouts/background.jpg')无重复的上止点;
}
经过几个小时的故障排除,我发现这种行为是由路径中的拼写错误引起的!包含我想要的图像的目录是
layout
,而不是
layouts

一旦我更正了路径,
url(/assets/layout/background.jpg)
正在按预期生成

2015年11月12日更新 我又遇到了这个问题,这次是用一个
image\u标签()
。我的路径拼写正确(图像在开发过程中工作正常),但我在文件路径中省略了“.png”。这在开发中效果很好,但在生产中显然不行。一旦我将“.png”添加到路径中,
image\u标记()
就有了正确的路径


这种行为是荒谬的。不知道为什么它会返回到一些非标准路径(
/images
而不是
/assets
),而不是抛出异常(但我也没有费心查看源代码)。

感谢您解释这一区别!是否有像
image\u标记
helper那样计算完整路径的助手?我的印象是,
image\u路径
可以工作,正如这里的示例所示:但是我的
image\u路径
导致的是
AssetTagHelper
示例,而不是
asseturhelper
example必须澄清:
image\u路径
没有被否决,只是移动到了另一个模块。:)我从erb文件和控制台中的“Rails.application.routes.url\u helpers”中获得了不同的url。这就是罪魁祸首!我在桌子上留下了一些咬痕。。。
Method deprecated or moved
This method is deprecated or moved on the latest stable version. The last existing version (v3.2.13) is shown here.

These similar methods exist in v4.0.2:

ActionView::Helpers::AssetUrlHelper#image_path
$ rake tmp:cache:clear