Rails 中 json 的路由取决于从哪里调用

Route in Rails for json depends on where called from

创建了一个文件maps.json,用于下面的JavaScript

function findSelectedMap(mapID, cb) {
   $.getJSON('maps.json', function(json) { 
    json.forEach(function(entry) {
      if (entry.maps.id == mapID) {
        changeLayerTo = entry.maps.url;
        maxZoom = entry.maps.zoom;
      }
    });
    cb();
  });
};

从顶层 http://localhost:3000/overview 调用时工作正常,mapId

mapID = $("#select-overlay input[type='radio']:checked").val();

但是从http://localhost:3000/streets/45调用时,错误是http://localhost:3000/streets/streets/maps.json 404 (Not Found)。我在 routes.Redondo 海滩尝试了 get 'streets/maps.json' => 'maps.json' 和类似的但没有成功。我想我可以强制 maps.json 进入 streets 并执行 if exists (无论 jS 是什么),但这似乎很麻烦。有解决办法吗?

您可以将斜杠添加到端点的开头,让浏览器知道您的 URL 从基数 URL

开始
$.getJSON('/maps.json', function(json) {
  // rest of logic
})