[RUBY-ON-RAILS] 5 레일 :로드 LIB 파일 생산
RUBY-ON-RAILS5 레일 :로드 LIB 파일 생산
나는 레일 5.0.0에 레일 4.2.6에서 내 애플 리케이션 중 하나를 업그레이드했습니다. 업그레이드 가이드는 자동로드 기능을 기본으로 생산에서 비활성화되어 있음을 말한다.
나는 application.rb 파일에 자동로드 모든 LIB 파일을로드하기 때문에 지금은 항상 내 프로덕션 서버에 오류가 발생합니다.
module MyApp
class Application < Rails::Application
config.autoload_paths += %W( lib/ )
end
end
지금, 나는 true로 config.enable_dependency_loading를 설정했지만 이에 대한 더 나은 해결책이 있을까. 자동 로딩은 기본적으로 생산에서 비활성화되어있는 이유가 있어야합니다.
해결법
-
==============================
1.레일 (5)로 이동 한 후 변경 내 목록 :
레일 (5)로 이동 한 후 변경 내 목록 :
-
==============================
2.난 그냥 대신 GitHub의 코멘트에 언급 akostadinov 같은 config.autoload_paths의 config.eager_load_paths을 사용 : https://github.com/rails/rails/issues/13142#issuecomment-275492070
난 그냥 대신 GitHub의 코멘트에 언급 akostadinov 같은 config.autoload_paths의 config.eager_load_paths을 사용 : https://github.com/rails/rails/issues/13142#issuecomment-275492070
# config.autoload_paths << Rails.root.join('lib') config.eager_load_paths << Rails.root.join('lib')
그것은 개발 및 생산 환경에서 작동합니다.
제안 # 교체 주셔서 감사합니다 요한 {Rails.root} / Rails.root.join와 LIB ( 'LIB')!
-
==============================
3.자동 로딩 때문에 스레드 안전 프로덕션 환경에서 사용할 수 없습니다. 링크에 대한 Зелёный @ 감사드립니다.
자동 로딩 때문에 스레드 안전 프로덕션 환경에서 사용할 수 없습니다. 링크에 대한 Зелёный @ 감사드립니다.
나는 Github에서에 권장하는 내 응용 프로그램 디렉토리에 lib 디렉토리 폴더에 lib에 파일을 저장하여이 문제를 해결했다. 응용 프로그램 폴더에있는 모든 폴더가 자동으로 레일에 의해로드됩니다.
-
==============================
4.다음은이 문제에 대한 긴 설명이다. https://github.com/rails/rails/issues/13142
다음은이 문제에 대한 긴 설명이다. https://github.com/rails/rails/issues/13142
-
==============================
5.이 LIB 자동 리로드를 가질 수 있습니다, 너무 프로덕션 환경에서 작동합니다.
이 LIB 자동 리로드를 가질 수 있습니다, 너무 프로덕션 환경에서 작동합니다.
추신 내 대답을 변경, 지금은 너무 사용자 환경에서 작업을 할 수 있도록 관계없이 환경을 모두 eager- 자동로드 경로에 추가 (단계 등)
# config/initializers/load_lib.rb ... config.eager_load_paths << Rails.root.join('lib') config.autoload_paths << Rails.root.join('lib') ...
-
==============================
6.어떤 의미에서, 여기 열망 부하가 제대로 일을 할 수 없습니다 다르게 구성 될 때마다 필요한 자동로드 경로를 추가 같은 시간에, 열망과 자동로드 구성을 중앙 집중화 레일 (5)의 통합 접근 방식은 다음과 같습니다
어떤 의미에서, 여기 열망 부하가 제대로 일을 할 수 없습니다 다르게 구성 될 때마다 필요한 자동로드 경로를 추가 같은 시간에, 열망과 자동로드 구성을 중앙 집중화 레일 (5)의 통합 접근 방식은 다음과 같습니다
# config/application.rb ... config.paths.add Rails.root.join('lib').to_s, eager_load: true # as an example of autoload only config config.paths.add Rails.root.join('domainpack').to_s, autoload: true ...
-
==============================
7.그냥 config.autoload_paths에 config.eager_load_paths에서 설정 / application.rb 파일을 변경합니다. 때문에 레일 5 자동 로딩은 기본적으로 생산 환경에 사용할 수 없습니다. 자세한 내용은 링크를 따르십시오.
그냥 config.autoload_paths에 config.eager_load_paths에서 설정 / application.rb 파일을 변경합니다. 때문에 레일 5 자동 로딩은 기본적으로 생산 환경에 사용할 수 없습니다. 자세한 내용은 링크를 따르십시오.
#config.autoload_paths << "#{Rails.root}/lib" config.eager_load_paths << Rails.root.join('lib')
그것은 환경의 개발 및 생산을 모두 사용할 수 있습니다.
-
==============================
8.누군가가 나처럼이 고생를 들어, 응용 프로그램에서 디렉토리는 / 단지 곳으로는 충분하지 않습니다. 예, 자동 로딩 만 충족되어야 규칙의 네임 필요하지 필요한 재로드를 얻을 것이다.
누군가가 나처럼이 고생를 들어, 응용 프로그램에서 디렉토리는 / 단지 곳으로는 충분하지 않습니다. 예, 자동 로딩 만 충족되어야 규칙의 네임 필요하지 필요한 재로드를 얻을 것이다.
또한, 로딩 된 루트 수준의 lib 디렉토리에 대한 초기화 사용하는 것은 개발 과정에서 기능을 다시로드 방지 할 수 있습니다.
-
==============================
9.문제를 해결 응용 프로그램에 lib 디렉토리 폴더를 도왔 이동, 내 트위터 API를 생산에서 실행하지 않을 것입니다. 나는 "초기화되지 않은 상수의 TwitterApi"을 가지고 내 트위터 API 내 LIB 폴더에 있었다. 내 application.rb에서 config.autoload_paths + DIR = [ "# {Rails.root} / 응용 프로그램 / lib 디렉토리"] 있었다하지만 폴더를 이동하기 전에 작동하지 않았다.
문제를 해결 응용 프로그램에 lib 디렉토리 폴더를 도왔 이동, 내 트위터 API를 생산에서 실행하지 않을 것입니다. 나는 "초기화되지 않은 상수의 TwitterApi"을 가지고 내 트위터 API 내 LIB 폴더에 있었다. 내 application.rb에서 config.autoload_paths + DIR = [ "# {Rails.root} / 응용 프로그램 / lib 디렉토리"] 있었다하지만 폴더를 이동하기 전에 작동하지 않았다.
이 속임수를 썼는지
-
==============================
10.레프의 답변을 요약하면 : MV LIB 응용 프로그램 내 LIB 코드 / 자동 다시로드 자동으로 적재 모든이에 충분했다.
레프의 답변을 요약하면 : MV LIB 응용 프로그램 내 LIB 코드 / 자동 다시로드 자동으로 적재 모든이에 충분했다.
(6.0.0beta3 레일하지만 레일에 5.x를 너무을 잘 작동합니다)
from https://stackoverflow.com/questions/38198668/rails-5-load-lib-files-in-production by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] OmniAuth 및 페이스 북 : 인증서 확인 실패 [중복] (0) | 2020.02.08 |
---|---|
[RUBY-ON-RAILS] 루비를 실행에 제한 / 창에 레일 (0) | 2020.02.08 |
[RUBY-ON-RAILS] MySQL로 sqlite가에서 레일 응용 프로그램에 루비를 변환? (0) | 2020.02.08 |
[RUBY-ON-RAILS] 레일에 has_one 협회와 빌드를 사용하여 (0) | 2020.02.08 |
[RUBY-ON-RAILS] 어떻게 레일의 URL에서 파일과 저장을 다운로드 할 수 있습니까? (0) | 2020.02.08 |