我真的很沮丧,我不认为我会再次尝试使用rails。这是我第二次尝试使用它,老实说,我甚至无法开始使用它。
无论如何,现在我已经吹走了这种蒸汽,这里描述的是发生了什么以及我被困在哪里。
我有一个网站example.com
。这个站点有一个.htaccess
,可以进行大量的重定向(它可以在文档根目录中的一个文件中加载适当的控制器以及你拥有的内容)。使用cpanel,我设置了blog.example.com
。它的文档根目录是example.com/blog
。我决定尝试将RoR用于博客并学习新的东西。
我开始使用本指南:http://guides.rubyonrails.org/getting_started.html - 他们的rails版本似乎是3.1.3。我服务器上的那个是3.0.9,但我认为这不应该对这些简单的东西产生影响。我试图通过设置使用MySQL来实现目标。我可能会离开,但我至少想要一个页面打印。
安装完成后,我创建了一个从RoR public
到blog
文档根目录的符号链接。访问blog.example.com
会显示RoR“冒烟测试”页面。精彩。
点击“关于您的应用环境”(指向http://blog.example.com/rails/info/properties
的链接)重定向到example.com
。这是一个非常糟糕的迹象。我不知道为什么它不仅会重定向到自己的文档根目录,而是重定向到主域的文档根目录。我认为这是因为example.com
的{{1}}中的重定向,所以我删除了说.htaccess。没有骰子 - 发生相同的重定向。我认为它也可能是浏览器缓存,但清除缓存甚至使用不同的浏览器仍会导致这种重定向!我必须得出结论,.htaccess
本身正在从rails
重定向到blog.example.com/rails/info/properties
,但这没有任何意义 - 特别是因为我没有触及RoR应用程序端的任何内容所有
无论如何,我决定继续。我用example.com
创建了一个控制器。这些文件似乎都是有序的。我还将rails generate controller home index
中的root :to
更新为routes.rb
。
home#index
打印:
rake routes
我按照说明删除home_index GET /home/index(.:format) {:controller=>"home", :action=>"index"}
root /(.:format) {:controller=>"home", :action=>"index"}
,以便显示默认路线。
使用app/public/index.html
,访问example.com/.htaccess
只需提供404,访问/
(或/first/index
,/first
或/first/
)全部重定向到/first/index/
。我再一次删除了example.com
,因为它可能导致重定向。我不确定它是服务器还是其他黑魔法,但删除.htaccess
仍然导致重定向到.htaccess
,即使它不再有效,因为它需要{ {1}}自己适当地重写。但是,使用其他浏览器似乎可以解决这个问题。
但是,仍然获取访问example.com
或.htaccess
或其任何变体的404。 /
有很多:
/first/index
...但是log/product.log
表明有可用的路线。 Started GET "/first/index/" for ?.?.?.? at 2012-03-14 15:40:59 -0400
ActionController::RoutingError (No route matches "/first/index"):
Started GET "/" for ?.?.?.? at 2012-03-14 15:41:57 -0400
ActionController::RoutingError (No route matches "/"):
存在且rake routes
奇怪的是app/view/home/index.html.erb
似乎并不总是记录每次访问时的错误,所以也许服务器或其他东西正在缓存响应 - 我不知道我知道,但我知道我每次都得到404,即使<h1>Home#index</h1>...
甚至说路线存在(检查log
和rake
似乎表明它们也应该存在)
为长篇摘要道歉,但这些信息可能都是相关的。我的问题有两个:
1)如何让config/routes.rb
忽略app/controllers/home_controller.rb
的{{1}}或以其他方式忽略重定向(假设是导致它们的blog.example.com
- 我'我不是100%肯定是这种情况,但似乎很可能)。作为参考,example.com
是:
.htaccess
2)如何让RoR控制器进入工作期?我按照说明设置了这封信的路线 - 我的结果看起来没有什么错,但我仍然得到404,所以我真的不知道该怎么办。
答案 0 :(得分:1)
假设您已经安装了导轨(听起来像你有)。这会发生什么?:
$>rails new myapplication
$>cd myapplication
$>rails s
然后导航到:http://localhost:3000