2016-08-11 29 views
-1

我在Rails中显示图像时遇到问题。我有两张图片(bluedot.svg和reddot.svg)。 bluedot.svg将显示在网站上。 reddot.svg未在网站上显示。我试图在谷歌地图上将点显示为标记。这是我的代码。在Rails中找不到SVG图像

对于蓝色标记:

var iconBlue = { 
    url: "<%= image_path('bluedot.svg') %>", // url 
    scaledSize: new google.maps.Size(80, 70), // scaled size 
    origin: new google.maps.Point(0,0), // origin 
    anchor: new google.maps.Point(0,0) // anchor 
}; 

var marker = new google.maps.Marker({ 
    map: map, 
    position: geolocate, 
    icon: iconBlue, 
    animation: google.maps.Animation.DROP, 
    title: "Current Location", 
    html: 
    '<div class=MarkerPop>' + 
     '<p>Latitude: '+ position.coords.latitude + '</p>' + 
     '<p>Longitude: '+ position.coords.longitude + '</p>' 
}); 

对于红色标记:

var iconRed = { 
    url: "<%= image_path('reddot.svg') %>", // url 
    scaledSize: new google.maps.Size(80, 70), // scaled size 
    origin: new google.maps.Point(0,0), // origin 
    anchor: new google.maps.Point(0,0) // anchor 
}; 

$.each(locationId, function() { 
    myLatlng = new google.maps.LatLng(locationLat[counter], locationLng[counter]); 
    clearMarkers(); 
    allMarkers.push(new google.maps.Marker({ 
    position: myLatlng, 
    map: map, 
    icon: iconRed, 
    animation: google.maps.Animation.DROP, 
    title: locationName[counter], 
    html: 
      '<div class=MarkerPop>' + 
      '<h1>' + locationName[counter] + '<h1>' + 
      '<h3>' + locationAddress[counter] + '<h3>' + 
      '<p>' + locationComment[counter] + '</p>' + 
      '<div>' 
    }) 
); 

的图像是仅填充颜色不同相同。他们都在同一个文件夹中。

我试图预编译图像,但这也没有帮助。

rake assets:precompile 

我试图删除临时/缓存/资产文件夹和公共/资产文件夹,重新启动服务器,但是这并没有帮助。

我将javascript文件扩展名从map.js更改为map.js.erb。这有助于但没有显示图像。

是我得到谷歌浏览器控制台中的错误:

GET http://localhost:3000/images/reddot.svg 404 (Not Found) 

是我得到的Rails的服务器控制台错误:

ActionController::RoutingError (No route matches [GET] "/images/reddot.svg") 

没有任何人有一个想法是什么未来去做?

+0

你可以浏览这两个网址并查看/获取图像吗?如果你运行'耙路线',会出现什么情况? – Rik

+0

我想通了,这有点傻。在文件资源管理器中,我无法在reddot.svg文件名称之间看到空格。它被命名为“reddot .svg”。一旦我去了控制台,并查看图像名称,我看到了错误。感谢@rik的帮助! – Samuel

回答

0

我想通了,这有点傻。在文件资源管理器中,我无法在reddot.svg文件名称之间看到空格。它被命名为“reddot .svg”。一旦我去了控制台,并查看图像名称,我看到了错误。感谢@rik的帮助!