2014-05-14 1 views
1

rack-rewrite을 올바르게 설정하는 방법을 알아 내려고 약간의 문제가 있습니다. 나는 약간의 멍청이이고 그 사이트는 설치에 대해 아주 명확하지 않다. 나는 그것에 대해 더 많이 알고 있다면 두 가지 질문을한다.로컬 dev 및 heroku 용 유니콘으로 랙 재 작성을위한 올바른 구성

1) 내 gemfileconfig.ru 파일 모두에 보석을 넣어야합니까? (README 섹션의 "샘플 랙 업 파일"참조)

2) 내 config.ru 파일과 내 config/application.rb 파일 모두에서 랙 다시 쓰기 설정이 필요합니까? (README의 "샘플 랙 업 파일"및 "레일 애플리케이션의 샘플 사용법"절 참조)

3) 내 application.rb 파일에 config를 저장합니까? class Application < Rails::Application 블록에 있습니까?

4) 내가 로컬 unicorn를 시작할 때, 나는 다음과 같은 오류가 발생합니다, 그러나, 위의 모두를 시도

$ unicorn 
I, [2014-05-13T16:57:00.926144 #17432] INFO -- : Refreshing Gem list 
/config/environment.rb:2:in `require': /config/application.rb:98: syntax error, unexpected end-of-input, expecting keyword_end (SyntaxError) 
    from /config/environment.rb:2:in `<top (required)>' 
    from config.ru:4:in `require' 
    from config.ru:4:in `block in <main>' 
    from /Users/me/.rvm/gems/[email protected]/gems/rack-1.4.5/lib/rack/builder.rb:51:in `instance_eval' 
    from /Users/me/.rvm/gems/[email protected]/gems/rack-1.4.5/lib/rack/builder.rb:51:in `initialize' 
    from config.ru:1:in `new' 
    from config.ru:1:in `<main>' 
    from /Users/me/.rvm/gems/[email protected]/gems/unicorn-4.8.2/lib/unicorn.rb:48:in `eval' 
    from /Users/me/.rvm/gems/[email protected]/gems/unicorn-4.8.2/lib/unicorn.rb:48:in `block in builder' 
    from /Users/me/.rvm/gems/[email protected]/gems/unicorn-4.8.2/lib/unicorn/http_server.rb:760:in `call' 
    from /Users/me/.rvm/gems/[email protected]/gems/unicorn-4.8.2/lib/unicorn/http_server.rb:760:in `build_app!' 
    from /Users/me/.rvm/gems/[email protected]/gems/unicorn-4.8.2/lib/unicorn/http_server.rb:137:in `start' 
    from /Users/me/.rvm/gems/[email protected]/gems/unicorn-4.8.2/bin/unicorn:126:in `<top (required)>' 
    from /Users/me/.rvm/gems/[email protected]/bin/unicorn:23:in `load' 
    from /Users/me/.rvm/gems/[email protected]/bin/unicorn:23:in `<main>' 
    from /Users/me/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
    from /Users/me/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>'>' 

--------------- ----- 업데이트 --------------------

위의 문제를 해결했습니다. application.rb, config.ru에 설정하거나 initializers 디렉토리에 rack_rewrite.rb 파일을 만들면 보석이 매우 다양해 보입니다.

누구나 코드를 넣을 수있는 최적의 위치는 어디입니까?

또한 리디렉션에서 후행 /을 설명하는 방법이 있습니까? 예를 들어 이것을 한 줄로 압축하는 방법이 있습니까?

r301 '/for-gyms-and-rec-centers', '/venues/3' 
r301 '/for-gyms-and-rec-centers/', '/venues/3/ 

답변

0

당신은 레일 응용 프로그램을 사용하는 경우, 그때는 아마 청결을 유지해야하며, 만 gemfile에 랙 재 보석 선언을 놓고, 당신이 config.ru 파일에 필요하지 않습니다. 그뿐 아니라 application.rb 파일에 구성 코드 만 있으면됩니다.

클래스의 마지막 부분 근처, 즉 모듈의 마지막 끝 부분에서 일어나는 클래스의 마지막 부분 인 end 바로 앞에 안전하게 블록을 배치 할 수 있습니다. 유니콘을 사용하면 스택에 랙 미들웨어를 삽입 할 때주의해야합니다. Rack::Runtime이 아니라 Rack::Lock이 아닌 바로 앞에 타겟팅하고 싶을 것입니다.

후행 슬래시 질문까지 나는 '/for-gyms-and-rec-centers(.*)'을 가질 수 있으며 그걸 포착해야한다고 생각합니다.

관련 문제