2013-02-07 34 views
0

我正在写一个jQuery Mobile网站,将其转变为PhoneGap/Cordova应用。为了实现这一点,我创建了一个全新的rails项目,并在更改为Web服务器的“精简”gem后,将整个jQuery Mobile应用程序放入新Rails项目的public/myapp文件夹中。Rails公共路由中的随机路由错误

这一切工作正常;我可以从localhost:3000/myapp到达我的移动应用程序,但经过几个小时的测试后,突然间Rails应用程序开始在所有地方投掷404。可能发生了什么?

这是我在轨服务器日志中看到的错误之一:

ActionController::RoutingError (No route matches [GET] "/js/setlocation_address.js" 

基本上在我的<head>标签与一个404错误一个JavaScript或CSS文件返回的每一个参考。

+0

如果这是一个Rails 3项目,您可能需要检查资产管道是不是造成麻烦。我不确定当JavaScript引用它们的HTML没有被触发时,JavaScript文件在开发模式中保持多久。 – tadman

+0

这是轨道3,但我认为资产管道不影响公共文件夹? – you786

+0

哦,如果你把它们放在公共文件夹中,你可能只是让资产管道生气。据我所知,除非您已完全禁用资产管道功能,否则不推荐使用该方法。您的服务器软件可以提供其他静态文件吗? – tadman

回答

1

我认为解决的办法是把

config.serve_static_assets = true 

config/environments/production.rb文件,但我不知道这是否解决了问题,因为它是一个间歇性的。

编辑

实际上似乎问题是,我有时会去localhost:3000/myapp有时候为了localhost:3000/myapp/index.html

虽然Rails的将路线我相同的index.html页每一次,我的浏览器不会皮卡相对路径正确,并会试图让localhost:3000/css/styles.css而不是localhost:3000/myapp/css/styles.css