Rails重定向改变url阻止加载图像

时间:2014-10-06 20:31:15

标签: javascript ruby-on-rails

我在控制器和视图配置中创建了一个登录,在成功登录时会添加会话变量。当控制器返回到客户端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)
         }

如何更改网址,将“概述”添加到我的图像目录的一部分?

1 个答案:

答案 0 :(得分:0)

我修好了。在我的路由文件和尝试和错误尝试之间,我得到了一些代码混乱。

显然这是

    redirect_to :controller => 'overview', :action => 'homepage'

更改网址中的根目录。

只需保留

    redirect_to '/overview/homepage'

    get 'overview/homepage' 
路由文件中的

是正确的重定向。