[RUBY-ON-RAILS] 어떻게 레일 URL 헬퍼에 대한 기본 호스트를 설정합니까?
RUBY-ON-RAILS어떻게 레일 URL 헬퍼에 대한 기본 호스트를 설정합니까?
나는 같은 것을 할 싶습니다
config.default_host = 'www.subdomain.example.com'
내 구성 파일의 일부, 그래서 object_url 헬퍼 (ActionView :: 도우미 :: UrlHelper) 생산 링크 http://www.subdomain.example.com로 시작하는 것을
내가하는 팻의에 모르기 때문에, 나는 문서를 검색하는 것을 시도했다 그러나 나는 나를 위해 유용하지 않은 http://api.rubyonrails.org/classes/Rails/Configuration.html을 ActionMailer의 문서를 제외하고 아무것도 찾을하지 않고 보기. 레일의 전체 구조를 설명하는 곳이 있습니까 :: Initializer.config?
해결법
-
==============================
1.asset_host는 URL의하지 작업을 수행
asset_host는 URL의하지 작업을 수행
당신은 (레일 3 적어도) 귀하와 ApplicationController의 재정 default_url_options 필요
http://edgeguides.rubyonrails.org/action_controller_overview.html#default-url-options
class ApplicationController < ActionController::Base def default_url_options if Rails.env.production? {:host => "myproduction.com"} else {} end end end
-
==============================
2.귀하의 환경 설정에서 기본 호스트를 정의합니다 :
귀하의 환경 설정에서 기본 호스트를 정의합니다 :
# config/environments/staging.rb MyApp::Application.configure do # ... Rails.application.routes.default_url_options[:host] = 'preview.mydomain.com' # ... end
그런 다음 앱의 URL의 어디를 만들 수 있습니다 :
Rails.application.routes.url_helpers.widgets_url()
아니면 클래스의 URL 헬퍼를 포함한다 :
class MyLib include Rails.application.routes.url_helpers def make_a_url widgets_url end end
기본 호스트를 정의하지 않으면, 당신은 옵션으로 합격해야합니다 :
widgets_url host: (Rails.env.staging? ? 'preview.mydomain.com' : 'www.mydomain.com')
이 프로토콜과 같은 일을 지정하는 것이 유용합니다 :
widgets_url protocol: 'https'
-
==============================
3.또 다른 방법은 이런 식으로 설정하는 것입니다
또 다른 방법은 이런 식으로 설정하는 것입니다
# config/production.rb config.action_controller.default_url_options = { host: 'myproduction.com' }
-
==============================
4.당신은 쉽게 설정할 수 있습니다 : 호스트 또는 / 및 : 모든 url_helper에 대한 매개 변수 only_path. yours_url (PARAMS : 호스트 => "http://example.com": only_path => Rails.env.test) 당신이 원하는하지 않는 한이 방법은 당신이 당신의 환경에서 글로벌 default_url_options 설정되지 않습니다.
당신은 쉽게 설정할 수 있습니다 : 호스트 또는 / 및 : 모든 url_helper에 대한 매개 변수 only_path. yours_url (PARAMS : 호스트 => "http://example.com": only_path => Rails.env.test) 당신이 원하는하지 않는 한이 방법은 당신이 당신의 환경에서 글로벌 default_url_options 설정되지 않습니다.
-
==============================
5.지금까지 내가 아는 한, * _url 헬퍼는 서버의 구성 호스트 이름을 사용합니다. 그래서 예를 들어 내 아파치 설치가 레일 다음 http://www.myapp.com/에서이 레일 응용 프로그램에 대한 요청을 받아 들일지 어떨지하면 해당 주소를 사용합니다. 의 그 이유는 HTTP에 개발 환경 점에서 * _url 방법 : // localhost를 : 기본적으로 3000.
지금까지 내가 아는 한, * _url 헬퍼는 서버의 구성 호스트 이름을 사용합니다. 그래서 예를 들어 내 아파치 설치가 레일 다음 http://www.myapp.com/에서이 레일 응용 프로그램에 대한 요청을 받아 들일지 어떨지하면 해당 주소를 사용합니다. 의 그 이유는 HTTP에 개발 환경 점에서 * _url 방법 : // localhost를 : 기본적으로 3000.
이전의 대답에 제안 자산 호스트 만 IMAGE_TAG, stylesheet_link_tag 및 javascript_link_tag 도우미에 영향을 미칠 것입니다.
-
==============================
6.가장 간단한 방법은 레일에 글로벌 변수를 사용하여 URL을 동적 도메인을 얻을 수 있습니다.
가장 간단한 방법은 레일에 글로벌 변수를 사용하여 URL을 동적 도메인을 얻을 수 있습니다.
class ApplicationController < ActionController::Base def base_url $base_url = request.base_url end end
당신의 헤더 파일에이 메소드를 호출 한 후 <% BASE_URL %>, 지금 당신은 당신의 응용 프로그램에서 도메인 URL 어디서나 액세스 할 수 있습니다.
-
==============================
7.NSD의 솔루션은 내가 할 방법이지만, 나는 그것이 https로 작동하도록 블록을 추가했다 :
NSD의 솔루션은 내가 할 방법이지만, 나는 그것이 https로 작동하도록 블록을 추가했다 :
config.action_controller.asset_host = Proc.new { |source, request| (request ? request.protocol : 'http://') + "www.subdomain.example.com" }
-
==============================
8.이이 있어요,하지만 난 정말 확실히 그들은 당신이 언급하고있는 헬퍼이라면 아니에요 :
이이 있어요,하지만 난 정말 확실히 그들은 당신이 언급하고있는 헬퍼이라면 아니에요 :
ActionController::Base.asset_host = "assets.example.com"
http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html
from https://stackoverflow.com/questions/2660172/how-do-i-set-default-host-for-url-helpers-in-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 액티브을 찾을 청소 방법은 지정된 순서대로 id로 객체 (0) | 2020.02.08 |
---|---|
[RUBY-ON-RAILS] 레일 오류에 루비를 처리하는 방법 : " '보석 액티브 - PostgreSQL의 어댑터를 설치`PostgreSQL의 어댑터를 설치하십시오" (0) | 2020.02.08 |
[RUBY-ON-RAILS] 액티브 Arel OR 조건 (0) | 2020.02.08 |
[RUBY-ON-RAILS] 단지 다시로드 한 후 작동 자바 스크립트 레일 (0) | 2020.02.08 |
[RUBY-ON-RAILS] AngularJS와 : 숫자 만 텍스트 상자에 입력 할 수 있습니다 (0) | 2020.02.08 |