我在控制器和视图配置中创建了一个登录,在成功登录时会添加会话变量。当控制器返回到客户端javascript时,我使用JQuery重新加载页面,初始控制器检查会话变量。如果变量存在,那么我重定向到主页面。
loggedIn = session [:loggedIn]
if(loggedIn == true)
#redirect_to :controller => 'overview', :action => 'homepage'
redirect_to 'overview/homepage'
else
render 'login'
end
当主页试图通过javascript加载图片以粘贴到谷歌地图时,所有这一切都能很好地接受,它默认为新URL作为它的来源。在添加登录屏幕之前,url将是这个以查找图像:
http://localhost:3000/images/image.png
然而,在重定向之后,它会尝试在网址中找到图像,如下所示
http://localhost:3000/overview/images/image.png
当没有这样的文件目录时,这显然会失败。这也搞砸了我对服务器的一些调用,但我通过对路由文件进行了一些更改来解决这些问题。
这是引用图片的JavaScript代码
var someImage = {
url: '/images/image.png',
size: new google.maps.Size(40,40),
origin: new google.maps.Point(0,0),
anchor: new google.maps.Point(20,20)
}
如何更改网址,将“概述”添加到我的图像目录的一部分?
答案 0 :(得分:0)
我修好了。在我的路由文件和尝试和错误尝试之间,我得到了一些代码混乱。
显然这是 redirect_to :controller => 'overview', :action => 'homepage'
更改网址中的根目录。
只需保留
redirect_to '/overview/homepage'
和
get 'overview/homepage'
路由文件中的是正确的重定向。