javascript/jquery中的相对url &rails 3
Relative URLs in javascript/jquery & rails 3
每条记录都有一个这样的URL:
http://localhost:3000/items/3/stuff.json
http://localhost:3000/items/1/stuff.json
http://localhost:3000/items/4/stuff.json
http://localhost:3000/items/9/stuff.json
在http://localhost:3000/items/3/
这样的页面上,链接的JavaScript文件有如下代码:
$.getJSON(document.URL+'/stuff.json');
这允许我抓取JSON文件,而不用担心记录ID号。
问题出现在如下url上:
http://localhost:3000/items/3/news
http://localhost:3000/items/3/photos
:
$.getJSON(document.URL+'/stuff.json');
将查找:
http://localhost:3000/items/3/news/stuff.json
当然,这是不存在的
对于如何解决这个问题有什么想法吗?
可以使用
$.getJSON("../stuff.json", function(data){
});
如果当前url是"http://localhost:3000/items/3/anything"
编辑:$.getJSON(document.URL.match(/'/items'/'d+'//) + "stuff.json", function(data){
});
如果所有的url都是http://host/items/id/anything
如果这个JS是由Rails渲染的(即它不是来自资产管道的东西),那么你可以使用路由助手,像这样:
<script>$.getJSON("<%= item_news_stuff_path(3, :format => :json) %>")</script>
这将生成一个相对于根路径的资源,正确地构建路由。
相关文章:
- Rails Google maps javascript api v3 setIcon() url 無法定位圖片
- 阻止Rails 4转换src-url
- 如何在 JavaScript 中设置 Rails 背景图像 URL
- Rails 使用咖啡从 url 访问当前的 GET 页面参数
- rails在javascript url中添加对象
- Rails,通过Javascript将id发送到URL
- javascript/jquery中的相对url &rails 3
- 如何传递数据库ID到Rails URL路径
- 访问Rails资源,忽略URL中的区域设置范围
- 插入'#'在rails url中
- 当我试图通过rails插入URL时,window.replace方法在js中不起作用
- Ruby on rails在link_to url参数中添加javascript变量
- 使用Rails 3.1资产管道的JavaScript代码中的图像URL
- 多个URL参数和rails/backbone.js
- React JS with Rails -通过URL访问JSON数据
- 如何在rails中单击URL时弹出一个面板
- 使当前URL中的链接CSS不同(Ruby on Rails)
- Rails 4远程真实表单请求(用于ajax加载器),更新浏览器url
- 骨干网/rails之间使用REST url通信有问题
- 在Rails 4应用程序的URL中传递JavaScript变量,这样我就可以在控制器中使用它了