2012-03-14 9 views
0

레일을 다시 사용하려고 생각하지 않는 지점에 대해 좌절감을 느낍니다. 이것은 그것을 사용하려고 시도한 두 번째 시간이며 솔직히 시작할 수 없습니다.레일스가 간단하게 작동하지 않습니다.

어쨌든 이제 내가 그 증기를 날려 버렸으니, 여기에 무슨 일이 일어나고 있는지, 그리고 내가 붙어있는 곳을 설명하겠습니다.

사이트가 example.com입니다. 이 사이트는 많은 리디렉션을 수행하는 .htaccess을 가지고 있습니다 (적절한 컨트롤러를로드하는 문서 루트의 단일 파일에서 작동하며 사용자가 보유하고있는 것). cpanel을 사용하여 blog.example.com을 설정했습니다. 문서 루트는 example.com/blog입니다. 나는 블로그를 위해 RoR을 사용하고 새로운 것을 배우려고 노력할 수도 있다고 결정했다.

이 안내서는 http://guides.rubyonrails.org/getting_started.html부터 시작했습니다. 레일 버전은 3.1.3 인 것 같습니다. 내 서버에있는 서버는 3.0.9이지만, 이렇게 간단한 물건에는 차이가 없어야합니다. 나는 MySQL을 사용하도록 설정하는 일을 터벅 터벅 걷다. 나는 아마 벗어날 것이지만 적어도 인쇄 할 페이지를 원했습니다.

설치 후 RoR public에서 blog 문서 루트로 심볼릭 링크를 만들었습니다. blog.example.com을 방문하면 RoR "smoke test"페이지가 표시됩니다. 훌륭한.

"응용 프로그램 환경 정보"(http://blog.example.com/rails/info/properties에 대한 링크)를 클릭하면 example.com으로 리디렉션됩니다. 이것은 정말 나쁜 징후입니다. 나는 그것이 왜 자신의 문서 루트뿐만 아니라 주 도메인의 문서 루트로 리다이렉트 될지 전혀 모른다. 나는 리디렉션이 example.com.htaccess에서 진행 중이라고 생각하여 .htaccess를 삭제했습니다. 주사위가 없습니다 - 동일한 방향 전환이 발생합니다. 브라우저 캐시도 될 수 있다고 생각했지만 캐시를 지우고 다른 브라우저를 사용하더라도이 리다이렉션이 발생합니다! 나는 rails 그 자체가 blog.example.com/rails/info/properties에서 example.com으로 리다이 팅되고 있다고 결론 내릴 수있다. 그러나 그것은 의미가 없다. 특히 RoR 앱 끝 부분에 아무 것도 건드리지 않았기 때문에 그렇다.

어쨌든 계속하기로 결정했습니다. rails generate controller home index 컨트롤러를 만듭니다. 파일들은 모두 순서대로 보입니다. routes.rb에서 root :tohome#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 을 여전히으로 제거하면 더 이상 작동하지 않더라도 example.com으로 리디렉션됩니다. .htaccess이 적절하게 다시 작성해야하기 때문에 리디렉션됩니다. 하지만 다른 브라우저를 사용하면 문제를 해결할 수 있습니다.

그러나 여전히/ 또는 /first/index 또는 그 변종을 방문하면 404입니다.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이 있고 <h1>Home#index</h1>...이 있습니다 이상한 점은 log이 모든 방문에서 항상 오류를 기록하는 것처럼 보이지 않으므로 서버 또는 무언가가 응답을 캐싱하고있는 것입니다 - 모르겠지만 404 때마다 rake에도 경로가 존재한다고 말하고 있습니다. (그리고 config/routes.rbapp/controllers/home_controller.rb도 검사해야합니다.

긴 요약본에 사과드립니다. 그러나이 정보는 모두 관련 될 수 있습니다. 내 질문은 두 가지이다 :

1) 어떻게 그들을 일으키는는 .htaccess이라고 가정 (리디렉션을 무시하고, 그렇지 않으면 example.com.htaccess을 무시하거나 blog.example.com을받을 수 있나요 - 내가 그런 경우 100 % 확실하지 않다하지만, 그것은 아마 보인다). 참고로, .htaccess은 다음과 같습니다

RewriteEngine on 
RedirectMatch example/(.*)$ http://example.com/$1 

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1/ [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.html/$0/ [PT] 

2) 어떻게 RoR에 컨트롤러 기간을 일을 어떻게해야합니까? 편지에 대한 경로를 설정하기위한 지침을 따라했습니다. 끝 부분에는 아무 것도 보이지 않지만 여전히 404를 얻고 있으므로 무엇을해야할지 잘 모릅니다.

+0

내가 혼란 스러워요, 당신이 당신의 응용 프로그램을 배포하거나 개발하기 위해 로컬로 실행 하나를 얻기 위해 노력하고있다? 나는 두 번째 전에 첫 시도를 할 지 확신하지 못한다. – miked

+0

@miked 나는 동시에 둘 다를 추측합니까? –

+0

당신은 단순히 내장 된 WEBrick 서버로 서비스를 시도 했습니까? – miked

답변

1

레일이 설치되어 있다고 가정합니다 (사용자가 가지고있는 것처럼 들리는군요). 무엇으로 어떻게?

$>rails new myapplication 
$>cd myapplication 
$>rails s 

다음에 탐색이 : http://localhost:3000

+0

내 컴퓨터보다는 공유 호스팅에서이 작업을 수행하므로'localhost'는 작동하지 않습니다.'rails s'는 무엇입니까? –

+1

음, 문제가 있습니다. Rails는 현지에서 (컴퓨터에서) 쉽게 실행하고 실행할 수 있습니다. 공유 호스트에서 구성하기 전에 그렇게하는 것이 좋습니다. http://guides.rubyonrails.org/getting_started.html에서 'rails s'는 로컬 웹 서버를 시작하므로 앱을보고 개발할 수 있기 때문에 4 단계로 만들었습니다. – miked

+0

하지만 '연기 테스트'방문 페이지는 어떻게 볼 수 있습니까? –

관련 문제