복붙노트

[RUBY-ON-RAILS] 4 레일 : 왜 글꼴이 생산에 로딩하지?

RUBY-ON-RAILS

4 레일 : 왜 글꼴이 생산에 로딩하지?

나는 그것을 개발 정상적으로 작동 생산에 내 레일에서 4 응용 프로그램을 글꼴을로드 할 수 없습니다.

배포하는 동안 자산은 서버에 미리 컴파일된다.

내 글꼴이

응용 프로그램 / 자산 / 글꼴

내 app.css :

@font-face {
    font-family: 'WalkwayBoldRegular';
    src: url('Walkway_Bold-webfont.eot');
    src: url('Walkway_Bold-webfont.eot?#iefix') format('embedded-opentype'),
         url('Walkway_Bold-webfont.woff') format('woff'),
         url('Walkway_Bold-webfont.ttf') format('truetype'),
         url('Walkway_Bold-webfont.svg#WalkwayBoldRegular') format('svg');
    font-weight: normal;
    font-style: normal;
}

내 production.rb에서 내가 가진 :

config.assets.precompile << Proc.new { |path|
  if path =~ /\.(eot|svg|ttf|woff)\z/
    true
  end
}

해결법

  1. ==============================

    1.우리는 지난 주에이 문제를 가지고 있었다 - 문제가 표준 CSS는 여전히 "표준"이름을 찾는 것입니다 동안 당신의 자산, 그들에 MD5 해시를 가지고 컴파일 될 것입니다. 이 이미지 및 글꼴 문제입니다.

    우리는 지난 주에이 문제를 가지고 있었다 - 문제가 표준 CSS는 여전히 "표준"이름을 찾는 것입니다 동안 당신의 자산, 그들에 MD5 해시를 가지고 컴파일 될 것입니다. 이 이미지 및 글꼴 문제입니다.

    @font-face {
        font-family: 'akagi';
        src: asset_url('fonts/akagi-th-webfont.eot');
        src: asset_url('fonts/akagi-th-webfont.eot?#iefix') format('embedded-opentype'),
             asset_url('fonts/akagi-th-webfont.woff') format('woff'),
             asset_url('fonts/akagi-th-webfont.ttf') format('truetype'),
             asset_url('fonts/akagi-th-webfont.svg#akagithin') format('svg');
        font-weight: 300;
        font-style: normal;
    }
    

    이것은 당신이 동적으로 자산을로드하는 SCS 파일을 사용하는 방법의 예입니다. 이 파일은 자산 모두가 제대로 동기화 (푸시 전이나 초기화 중 하나) 당신의 .CSS 파일로 컴파일됩니다.

    우리는 Heroku가 당신에 비슷한 문제가 있고,이 /stylesheets/layout/fonts.css.scss에 우리의 파일을 넣어 다음 호출하여 작업 얻을 관리

    @import '/layout/fonts';
    

    우리는 또한 우리의 application.css라고 ->는 @import 기능을 지원하는 application.css.scss

  2. ==============================

    2.여기에 어떤 라이브러리에 대해이 문제를 해결하는 방법을 일반적인 방법이다.

    여기에 어떤 라이브러리에 대해이 문제를 해결하는 방법을 일반적인 방법이다.

    자산 URL을 이해하는 경로를 알고, Rails.application.assets.paths를 레일 콘솔로 가서 입력합니다. 당신은 같은 것을 얻을 것이다 :

    [
      '/path/1',
      '/path/2',
      '/path/3',
    ]
    

    당신의 글꼴에 / 경로 / 2 / 내 라이브러리 / 폰트 /를 사용하는 경우 자산 URL ( '내 라이브러리 / 폰트 / 내-library.eot').

    즉, 당신은 당신이 Rails.application.assets.paths에서 발견 한 일부있는 경로를 제거합니다.

    개발에 레일 콘솔에서 :

    helper.asset_url('my-library/fonts/my-library.eot')
    

    반환해야합니다 :

    "/assets/my-library/fonts/my-library-2517b97e2c0e1e6c8ceb9dd007015f897926bc504154137281eec4c1a9f9bdc9.eot"
    

    후행 / 자산을 참고 / 그리고는 마지막 부분에서 소화.

  3. ==============================

    3.1 : - 응용 프로그램 / 자산 / 글꼴 폴더에 모든 글꼴을 유지합니다.

    1 : - 응용 프로그램 / 자산 / 글꼴 폴더에 모든 글꼴을 유지합니다.

    2 : - 레이크 자산 후 : 사전 컴파일 RAILS_ENV = 생산의 모든 글꼴은 소화와 폴더 공공 / 자산 미리 컴파일 얻을 것이다.

    3 : - 대신 SRC 사용 : SCS들 파일에 font_url ( 'fontname.eot') : 홈페이지 ( 'fontname.eot') 사용 SRC를.

  4. ==============================

    4.레일이에 대한 사전 빌드 도우미와 함께. 대신 URL을 사용하는) 자산 URL을 (사용해야합니다 ().

    레일이에 대한 사전 빌드 도우미와 함께. 대신 URL을 사용하는) 자산 URL을 (사용해야합니다 ().

  5. from https://stackoverflow.com/questions/19409600/rails-4-why-are-fonts-not-loading-in-production by cc-by-sa and MIT license