2

web-app-theme gem を使用した Rails 3.2.6 ベースのアプリケーションがあります。本番環境にデプロイした後、 に次のエラーが表示され/var/log/apache2/error.logます。

[Wed Jul 18 23:00:14 2012] [error] [client 50.53.58.188] Premature end of script headers: fonts, referer: https://xxx.xxx.xx.xxx
[ pid=8920 thr=139857209571072 file=ext/apache2/Hooks.cpp:819 time=2012-07-18 23:00:14.743 ]: The backend application (process 9474) did not send a valid HTTP response; instead, it sent nothing at all. It is possible that it has crashed; please check whether there are crashing bugs in this application.
[ pid=9474 thr=9488700 file=utils.rb:176 time=2012-07-18 23:00:14.744 ]: *** Exception ActionController::RoutingError in application (No route matches [GET] "/assets/fonts/museosans_500-webfont.svg") (process 9474, thread #<Thread:0x00000001219278>):
    from /usr/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/action_dispatch/middleware/show_exceptions.rb:53:in `call'
    from /usr/lib/ruby/gems/1.9.1/gems/railties-3.1.3/lib/rails/rack/logger.rb:13:in `call'
    from /usr/lib/ruby/gems/1.9.1/gems/rack-1.3.6/lib/rack/methodoverride.rb:24:in `call'
    from /usr/lib/ruby/gems/1.9.1/gems/rack-1.3.6/lib/rack/runtime.rb:17:in `call'
    from /usr/lib/ruby/gems/1.9.1/gems/activesupport-3.1.3/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
.....

上記のファイルmuseosans_500-webfont.svgapp/assets/fonts/ディレクトリに配置しました。しかし、なぜ私はまだこのエラーです。/assets/fonts/museosans_500-webfont.ttfなどの他のアセットでも同様のエラーが表示されます。

フィードバックは大歓迎です。ありがとう。
-- アタランプ

4

3 に答える 3

0

environment.rbのアセットパスにフォントディレクトリを追加してみてください。

config.assets.enabled = true
config.assets.paths << "#{Rails.root}/app/assets/fonts"
于 2012-07-19T08:51:53.200 に答える
0

Katex ライブラリを統合するときに同じ問題に遭遇しました。

問題は、Rails のアセット パイプラインがまたはpublic/assetsディレクトリを保持せずにアセットをディレクトリにコンパイルすることです。fontsimagesjavascript

そのため、探しているときに/assets/fonts/museosans_500-webfont.svg存在しません。そのフォントは にコンパイルされてい/assets/museosans_500-webfont.svgます。

これを解決するには、次の 2 つのオプションがあります。

  1. CSS または JS のパスを更新します。

    /assets/fonts/museosans_500-webfont.svg

    になる

    /assets/museosans_500-webfont.svg

  2. fontsサブディレクトリにフォントを配置します。

    CSS または JS を更新したくない (または更新できない) 場合 (たとえば、縮小されたサード パーティ ライブラリ) は、次の方法を使用して、public/assets/fontsすべてのフォントを含むディレクトリがあることを確認できます。

    フォントを次のパスに配置するだけです。

    /assets/fonts/fonts/museosans_500-webfont.svg

    これで、public/assetsディレクトリにディレクトリが含まれ、fontsGET リクエストが処理されます。

詳細については、この回答を参照してください。

于 2015-04-06T17:07:43.953 に答える
0

CSS / HTML の URL が間違っているようです:

/assets/fonts/museosans_500-webfont.svg

それを次のように変更する必要があります。

/assets/museosans_500-webfont.svg

ただし、ファイルはディレクトリに保持app/assets/fontsしてください。

于 2013-07-26T14:14:54.870 に答える