Rails 4和Leaflet:找不到资产/图像?

mik*_*son 9 ruby-on-rails asset-pipeline leaflet

我遇到的问题确实不应该是问题.出于某种原因,我在app/assets/images中的图像不可访问.当我要求他们时,我只得到404.

./log/development.log:Started GET "/assets/images/marker-shadow.png" for 127.0.0.1 at 2013-07-20 22:02:38 -0400
./log/development.log:ActionController::RoutingError (No route matches [GET] "/assets/images/marker-shadow.png"):

mike@sleepycat:~/projects/myapp$ ls app/assets/images/
marker-icon-2x.png  marker-icon.png  marker-shadow.png
Run Code Online (Sandbox Code Playgroud)

这真的应该是一个简单的脑死亡修复...最多重启服务器.我已经重新启动了服务器,我已经检查了文件权限,以确保文件对它们具有合理的权限......当我加载页面时,我仍然得到404.

我在这里错过了什么?

使用Rails 4.

Nan*_*ego 17

只需使用此助手获取您的图像:

image_path('marker-shadow.png')
Run Code Online (Sandbox Code Playgroud)

rails生成的路径是"/assets/marker-shadow.png"而没有"images"文件夹.

  • 啊.就是这样.当我在地图上创建标记时,Leaflet.js正在请求默认图标,但Leaflet不知道Rails资产管道的东西.我必须指定一个带有iconUrl的自定义图标,该图标使用image_path助手.谢谢! (2认同)

okl*_*liv 7

app/assets/images/您可以使用直接路径访问文件夹中的所有内容

'/assets/marker-icon-2x.png'
...
Run Code Online (Sandbox Code Playgroud)

有一个资产助手可以在erb中使用它:

asset_path('marker-icon-2x.png')
Run Code Online (Sandbox Code Playgroud)

对于scss中的图像,它变为:

image-path('marker-icon-2x.png')
Run Code Online (Sandbox Code Playgroud)

因为文件夹app/assets/[images||stylesheets||javascripts]映射为一个/assets带有资产管道框架的文件夹

请注意,帮助者image_tag('marker-icon-2x.png')已经"知道"图像所在的位置