プロジェクトで素晴らしいフォントを使用しています(mvc/asp.net)
。私の問題は、プロジェクトをデバッグしてlocalhost
をチェックしていたので、フォントの素晴らしいアイコンには問題がなかったということです。しかし、アイコンの代わりにWebサイトを公開してWebで確認すると、小さなボックスが表示されました。正しいディレクトリ(css
ファイルが置かれている場所)に置かれていると確信しています。
適切な解決策が見つかりませんでした。
ちなみにボタンにも問題はありません。それらはすべて大丈夫ですが、アイコンはなくなりました。
ありがとう
あなたのウェブページをロードし、firebugのnetタブを確認しました。
次のURLは404を返しました:
http://www.senocakonline.com/Content/font/fontawesome-webfont.woff
http://www.senocakonline.com/Content/font/fontawesome-webfont.ttf
アイコンが表示されないのは、それらが欠落しているためだと思います。
更新:2015年10月23日、WebConfigにこのコードを追加するだけで利用可能になります:
<system.webServer>
<staticContent>
<mimeMap fileExtension="woff" mimeType="application/font-woff" />
<mimeMap fileExtension="woff2" mimeType="application/font-woff" />
</staticContent>
</system.webServer>
font-awesomeがデバッグモードで機能するのにIISでは機能しないのはなぜですか?
Visual Studioでは、デフォルトで、公開中に一部のフォントファイルが含まれません。
これは、build actionがNoneに設定されているためです。デフォルト(MVCでは、WebFormsでは不明)影響を受けるファイルのプロパティに移動し、「なし」から「コンテンツ」に設定する必要があります。
これは私がそれを解決した方法です(一部の人が示唆するようにファイルを手動でドラッグすることではありません)
クレジットはこの男に行きます: http://edsykes.blogspot.com/2012/09/aspnet-build-actions-with-ttf-eot-and.html
私のためにこの問題を解決した別の解決策はここにあります: https://stackoverflow.com/a/12587256/615285
そこから引用:
問題は、CSSファイル内のアイコン/画像が相対パスを使用している可能性が高いため、バンドルがバンドルされていないCSSファイルと同じアプリ相対パスにない場合、リンクが壊れます。
簡単なことは、バンドルパスをcssディレクトリのように見せることで、相対URLが機能するようにすることです。
new StyleBundle("~/Static/Css/bootstrap/bundle")
1.1beta1リリースでこれのサポートを追加したため、画像のURLを自動的に書き換えるために、このリベースを自動的に行う新しいItemTransformを追加できます。
bundles.Add(new StyleBundle("~/bundles/publiccss").Include(
"~/Static/Css/bootstrap/bootstrap.css",
"~/Static/Css/bootstrap/bootstrap-padding-top.css",
"~/Static/Css/bootstrap/bootstrap-responsive.css",
"~/Static/Css/bootstrap/docs.css", new CssRewriteUrlTransform()));
同じ問題がありました。ソリューション:
CSSファイルを開き、現在のfont-faceセクションを削除して、次のものに置き換えます。
@font-face {
font-family: FontAwesome;
src: url('/Content/fonts/fontawesome-webfont.eot'), /*for IE */
url('/Content/fonts/fontawesomewebfont.svg'),
url('/Content/fonts/fontawesome-webfont.ttf'); /* for CSS3 browsers */
font-weight: normal;
font-style: normal;
}
(必要に応じてフォントフェイスの値を変更します)
デスクトップにttfフォントファイルをコピーし、次にeotに変換します
TTFフォントファイルをSVGに変換する
Ttfフォントファイルをwoffに変換(オプション)
Visual Studio 2012が開いているときに、これらすべてのフォント(ttf、eot、svg、woff ...)をファイルの場所にドラッグアンドドロップします。
プロジェクトを公開する
BundleConfig
の次のコード行に依存します。
BundleTable.EnableOptimizations = true;
正しい場合は、フォントファイルのパスを変更する必要があります。
../
はroot path, main folder of your project
。そして、残りのパスを記述する必要があります。
私の。本当の場合:
font-family: 'Icons';
src:url('../_include/css/fonts/Icons.eot');
src:url('../_include/css/fonts/Icons.eot?#iefix') format('embedded-opentype'),
url('../_include/css/fonts/Icons.woff') format('woff'),
url('../_include/css/fonts/Icons.ttf') format('truetype'),
url('../_include/css/fonts/Icons.svg#Icons') format('svg');
font-weight: normal;
font-style: normal;
Falseの場合:
font-family: 'Icons';
src:url('fonts/Icons.eot');
src:url('fonts/Icons.eot?#iefix') format('embedded-opentype'),
url('fonts/Icons.woff') format('woff'),
url('fonts/Icons.ttf') format('truetype'),
url('fonts/Icons.svg#Icons') format('svg');
font-weight: normal;
font-style: normal;
これは私のために働いた:<link href = "〜/ Content/font-awesome-4.2.0/css/font-awesome.css" rel = 'stylesheet' type = 'text/css' />
Directly URlをリンクする必要がありました
これはIISのMIMEタイプの問題でもあり、ファイル拡張子.woffを追加するだけで機能します
私にとって本当に役立つものはありませんでした。角度付きアプリケーションをホストするWebformページがあります。 angularアプリケーションはウェブフォントを使用します。
CssRewriteUrlTransform()を使用したトリックは正しい方向でしたが、最終的な解決策となるバンドル用の拡張機能が見つかりました!
ホール拡張を使用する必要はありません。CssRewriteUrlTransformFixedクラスをコピーして、元のクラスの代わりに使用するだけです。
BundleConfig.csでバンドルが有効になっているASP.NET MVCプロジェクトでは、これが機能しました。
ファイルfont-awesome.css
を開き、@font-face
を次のように変更します。
@font-face {
font-family: 'FontAwesome';
src: url('../font/fontawesome-webfont.eot?v=3.2.1');
src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
font-weight: normal;
font-style: normal;
}
各url
の前に../
を追加する必要がありました。
同じ問題がありました。フォントはローカルで適切に表示されましたが、サーバーにアップロードすると、空白の四角だけが表示されました。
FontAwesome CSSファイルのsrc属性に記載されているファイル名が実際のフォントファイル名と異なるために発生する場合があります。私の場合、fontawesome cssファイルで次のように見つかりました。
@ font-face { font-family: 'FontAwesome'; src:url( '../ font/fontawesome-webfont.eot?v = 3.2.1' ); src:url( '../ font/fontawesome-webfont.eot?#iefix&v = 3.2.1')format( 'embedded-opentype')、 url( '.. /font/fontawesome-webfont.woff?v=3.2.1 ')format(' woff ')、 url(' ../ font/fontawesome-webfont_aea8981c.ttf?v = 3.2.1 ')format ( 'truetype')、 url( '../ font/fontawesome-webfont.svg#fontawesomeregular?v = 3.2.1')format( 'svg'); font-weight: normal; フォントスタイル:normal; }
font/fontawesome-webfont_2d2816fe.eot font/fontawesome-webfont_aea8981c.eot font/fontawesome-webfont_aea8981c.ttf font/fontawesome-webfont_aea8981c.woff
名前はアンダースコアの後にcssファイルで適切に一致しませんでしたが、ローカルでは正常に機能していました。そのため、その原因として考えられるものを特定するのは困難でした。
FontAwesome cssファイルsrcのファイル名を実際の正確な名前に編集すると、機能しました。
上記のすべての提案を試しましたが、どれも機能しません。次に、フォントCSSファイルを別のCSSファイルに移動しようとしましたが、魔法が起こりました。すべてが問題なく機能し始めます。バンドルファイルから新しいCSSファイルを後でバンドルできることに注意してください。