سؤال

FontAwesome لا يعمل بالنسبة لي عندما أنا وضعت بلدي التطبيق على IIS7 الخادم.

في Firefox URL المطلوب هو ترميز http://l2etest.kema.intra/fonts/fontawesome-webfont.ttf%3Fv=4.0.3 وأنا الحصول على 404.عندما أقوم بتغيير %3F إلى ? كل شيء يعمل بشكل جيد.

نفس الشيء يحدث في أي ولكن طلب يذهب إلى eot الخط.

هذا ما لدي في CSS (نفس على FontAwesome الصفحة):

@font-face {
  font-family: 'FontAwesome';
  src: url('../fonts/fontawesome-webfont.eot?');
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}

أعتقد أن المشكلة هي أن IIS ترميز عناوين و بدلا من طلب ../fonts/fontawesome-webfont.eot? طلب يذهب إلى ../fonts/fontawesome-webfont.eot%3F.

من فضلك لا أقترح إزالة '?' أو '#' من عناوين المواقع.هم هناك على الغرض و ضرورية.السؤال هو كيفية جعل IIS لا ترميز عناوين url في هذا الطريق.أي أدلة سيكون موضع تقدير.

تحرير:راجع للشغل.الحالة المذكورة أعلاه يحدث عندما في شبكة الإنترنت.التكوين أنا وضعت requestValidationMode و requestPathInvalidCharacters:

<httpRuntime shutdownTimeout="360" maxRequestLength="102400" enable="true" requestValidationMode="2.0" requestPathInvalidCharacters="" />

دون أن أحصل على 400 (سيئ الطلب):يحتمل أن تكون خطرة الطلب.مسار القيمة تم الكشف عن العميل (?)

كيف يمكنني إصلاح IIS لخدمة الخط بشكل صحيح ؟

Edit2: حسنا, لقد وجدت سبب المشكلة.SquishIt تجميع أداة MVC3 تم تغيير تلك الشخصيات.عندما استبعاد الخط رهيبة.css من حزمة كل شيء يعمل بشكل جيد.

هل كانت مفيدة؟

المحلول 4

SquishIt تجميع أداة MVC3 كان عنوان url ترميز الخط مسارات ، لذلك ../fonts/fontawesome-webfont.eot? في ملف css تم تغيير ../fonts/fontawesome-webfont.eot%3F.وهذا عادة ما يعود 400 لأنه %3F تعتبر غير آمنة.إذا قمت بتعيين requestPathInvalidCharacters="" ثم %3F تعتبر آمنة ، ولكن من الواضح أن هناك لا الملف `../الخطوط/fontawesome-webfont.eot%3F`, ولذلك 404.

أزلت fontawesome.css من حزمة و كل شيء يعمل بشكل جيد.

نصائح أخرى

لماذا @font-face رمي الخطأ 404 على woff الملفات ؟

إضافة أنواع MIME في web config:

  <system.webServer>
    <staticContent>
      <remove fileExtension=".woff" /> <!-- In case IIS already has this mime type -->
      <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
    </staticContent>    
  </system.webServer>

يمكنك فتح IIS ، أشر إلى موقع الويب الخاص بك ، IIS الدورة, حدد أنواع MIME.بعد أنواع Mime عرض عرض ، انقر فوق إضافة -> في مربع الحوار:

  • اسم الملف: .woff
  • أنواع MiME: application/x-font-woff

انقر فوق "موافق".

القيام به.

هذا الجواب ليس المشكلة المذكورة أعلاه ولكن بالنسبة لأولئك الذين يواجهون خطأ مشابهة ولكن يرجع ذلك إلى سبب مختلف الأراضي في هذا الموضوع.

أنا واجهت نفس المشكلة ولكن وجدت في وقت لاحق أن IIS كان محاولة للبحث عن الخط رهيبة woff,eot الملفات في المجلد MyIpAddress/fonts/fontawesome-webfont.woof لكن كان لدي ملفات في مجلد مختلف.تحريك fontawesome-webfont.eot, fontawesome-webfont.svg,fontawesome-webfont.ttf, fontawesome-webfont.woff في مجلد الخطوط حل مشكلتي

لي فقط إضافة التمهيد CDN رابط حل المشكلة

على الصفحة الخاصة بك:

<head>
...
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
...
</head>

اللعب مع IIS قطع محفوف بالمخاطر ، بدلا من أن حاولت خدعة أخرى والتي كان نجاح 100%.

الخطوة 1

إعادة تسمية ملفات الخط الأسماء بإضافة .jpg في نهاية الملفات.

fontawesome-webfont.eot.jpg (بالمثل)

ثم تغيير أنواع الملفات في fontawesome.css جعل الخط خطوط

 */@font-face{font-family:'FontAwesome'; src:url('../fonts/fontawesome-webfont.eot.jpg?v=4.0.3'); src:url('../fonts/fontawesome-webfont.eot.jpg?#iefix&v=4.0.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff.jpg?v=4.0.3') format('woff'),url('../fonts/fontawesome-webfont.ttf.jpg?v=4.0.3') format('truetype'),url('../fonts/fontawesome-webfont.svg.jpg?v=4.0.3#fontawesomeregular') format('svg');

إذا كنت تستخدم كود إغنيتر تحت IIS7 :

في الويب الخاص بك.ملف التكوين ، إضافة woff إلى نمط

<rule name="Rewrite CI Index"> <match url=".*" /> <conditions> <add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html|woff" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:0}" /> </rule>

نأمل أن يساعد !

لقد غيرت من woff2 إلى woff و سارت على ما يرام.

إذا كنت تقوم بإضافة FontAwesome عبر تجميع ، فإنه يمكن رمي woff2 url.انظر الحل التالي على نفس الموضوع حيث CssRewriteUrlTransform يستخدم لإعادة صياغة url:https://stackoverflow.com/a/22700610/746984

استخدام هذا cdn الخاص بك index.html الصفحة...

 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top