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
})
创建了一个文件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
})