2011-11-23 38 views
3

我正在使用rails 3.1及更低版本的资产管道。rails 3.1 +资产管道+ webrick返回406请求到/ images/

我有我的图像存储在应用程序/资产/图像。

我.css.less文件

我有:

background-image: url('image.gif'); 

当样式表被编译,它如下呈现的图像的路径:

background-image: url('/images/image.gif') 

通过时请求这些图像webrick,webrick为这些请求返回了一个406错误代码。手动请求http://localhost/images/image.gif也返回一个406.

但是,http://localhost/assets/image.gif的请求工作得很好。

当我通过乘客访问导轨服务器时,使用/images/image.gif路径工作,与/assets/image.gif一样。

我也尝试将文件更改为.erb文件,然后使用asset_path,具有相同的结果。

我也试图通过在.css.less文件中使用该手动强制/assets路径:

background-image: url('/assets/image.gif') 

但仍然编译css文件使用/images/image.gif

回答

2

试试这个:

background-image:asset-url('image.gif',image);

+0

我没有使用sass,我知道应该支持asset-url。它似乎不适用于Less。有些东西在线说asset_url应该作为ruby代码工作,但是这种方法在我的环境中无法识别。我注意到,在我的链轮宝石来源中,函数asset_url被定义,但都是空的并被注释掉。 – kclair

+0

看起来像少轨道宝石缺少资产助手来创建图像的正确路径。 https://github.com/metaskills/less-rails/issues/1 - 看起来像这些添加在未发布的版本2.0.2 – kclair