在Rails中找不到SVG图像

SVG image not found in Rails

本文关键字:SVG 图像 找不到 Rails      更新时间:2023-09-26

我有一个在Rails中显示图像的问题。我有两个图像(bluedot.svg和reddot.svg)。svg将显示在网站上。在网站上没有显示reddot.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

我试过删除temp/cache/assets文件夹和public/assets文件夹,然后重启服务器,但是没有效果。

我已经将javascript文件扩展名从map.js更改为map.js.erb。这有帮助,但不能显示图像。

我在Google Chrome控制台得到的错误:

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

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

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

有人知道下一步该做什么吗?

我明白了,这有点傻。在文件资源管理器中,我看不到reddot.svg文件名中的空格。它被命名为"红点。svg"。当我进入控制台并查看映像名称时,我看到了错误。谢谢@rik的帮助!