2014-05-13 34 views
8

Tôi có lỗi này cả về sản xuất máy chủ IIS7 tôi và trên iisexpres địa phương (sau khi tôi đã thiết debug="false") kiểu MIMEasp fontawesome 404 (không tìm thấy)

GET http://localhost:64231/font/fontawesome-webfont.woff?v=3.2.1 404 (Not Found) jquery-1.11.0.min.js:2 
GET http://localhost:64231/font/fontawesome-webfont.ttf?v=3.2.1 404 (Not Found) localhost/:1 
GET http://localhost:64231/font/fontawesome-webfont.svg 404 (Not Found) 

tôi đã thêm vào web.config. Ngoài ra tôi đã thêm chúng vào IIS

<remove fileExtension=".woff" /> 
    <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" /> 
    <remove fileExtension=".svg" /> 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
    <remove fileExtension=".ttf" /> 
    <mimeMap fileExtension=".ttf" mimeType="application/x-font-ttf" /> 

Tôi đang làm gì sai?

+0

tôi đề nghị bạn gửi câu trả lời của riêng bạn và đánh dấu nó như là chấp nhận thay vì chỉnh sửa các câu hỏi – fabriciorissetto

Trả lời

2

Sự cố ở đường dẫn tương đối với phông chữ. Tôi đã thay thế nó bằng đường dẫn tuyệt đối url('/content/FontAwesome/font/...');

+0

Bạn có nghĩa là bạn sửa đổi 'font-awesome.css' hoặc' _variables.scss' trực tiếp trong gói? Tôi cài đặt font-awesome như một gói bower và nếu tôi muốn cập nhật các gói (và ngay cả khi nó là một gói NuGet), nó sẽ ghi đè lên các tùy biến! Điều này nghe có vẻ như một ý tưởng tồi. –

2

Khi bạn đặt giá trị gỡ lỗi thành false, nó sẽ tự động bật tối ưu hóa cho các gói. Thay vì, trong html của bạn tạo ra mã (bằng ví dụ):

<link href="/content/bootstrap-3.3.5.min.css" rel="stylesheet"/> 
<link href="/content/font-awesome.min.css" rel="stylesheet"/> 

Bạn sẽ có một cái gì đó như thế này:

<link href="/Styles?v=ca92niiBlGWlTNkBwoMTPgQGz9_5Ghi39pZxcx5Dyfk1" rel="stylesheet"/> 

Đây là lý do tại sao con đường của bạn không chính xác nữa. Tôi nghĩ rằng thiết lập đường dẫn tuyệt đối là một cách chính xác để giải quyết vấn đề này.

Nếu bạn không muốn tự động kích hoạt tối ưu hóa khi ứng dụng của bạn đang ở chế độ phát hành (debug="false"), bạn có thể thêm dòng này vào tập tin của bạn /App_Start/BundleConfig.cs:

BundleTable.EnableOptimizations = false; 

EDIT: Tôi chỉ nhìn thấy ngày câu hỏi của bạn ... Tôi đến đây vì tôi đã gặp phải vấn đề tương tự ngày hôm qua. Tôi hy vọng lời giải thích của tôi sẽ giúp ai đó.

+0

tôi đã kết thúc vô hiệu hóa tối ưu hóa nhưng không biết. hoặc hiểu các phân nhánh, nó sửa chữa vấn đề với phông chữ không tải, nhưng vấn đề là với các đường dẫn bó và tương đối, đường dẫn được thiết lập trong các biểu tượng web và các bảng định kiểu phông chữ tuyệt vời. cách thức tối ưu hóa bó hoạt động trong MVC? – Keith

+0

Đường dẫn phông chữ trong phông chữ-awesome.css là tương đối: '../ fonts/fontawesome-webfont.woff2'. Nói phông chữ và css của bạn nằm trong'/content/fonts/Thư mục 'và'/content/css/', nó sẽ hoạt động như mong đợi khi bạn có' debug = "fa lse "' vì đường dẫn phông chữ sẽ là '/ content/fonts /', nhưng khi bạn thay đổi thành 'debug =" true "', tất cả các tệp css của bạn bây giờ được tham chiếu trong '/ Styles? v = ...' và đường dẫn phông chữ sẽ là '/fonts/fontawesome-webfont.woff2' dẫn đến lỗi 404. – KevinM

0

Đối với tôi, cả hai sửa đổi font-awesome.css hoặc phông chữ tuyệt vời là _variables.scss hoặc tắt âm thanh tối ưu hóa như ý tưởng rất tồi. Trước đây sẽ được ghi đè bởi một gói cập nhật (giả sử bạn đang sử dụng một số hệ thống quản lý gói - bower, npm, NuGet). Sau này sẽ làm giảm hiệu suất của trang web. Tôi sẽ thử các cách sau:

  1. Cài đặt gói FontAwesome NuGet thay vì kho lưu trữ bower hoặc npm. Điều đó đặt số font-awesome.css vào thư mục /Content để số tương đối ../font/ cũng sẽ trỏ đến đúng hướng.
  2. Sao chép các tệp (về cơ bản sao chép) thành /font/. Cái sau này có thể khiến hai bản sao phân tán trong trường hợp cập nhật gói, nhưng sẽ không làm cho trang web bị lỗi.

Cuối cùng tôi đã đi với một gói NuGet thay vì một Chòi chơi cho một và bỏ css vào /Contents và các phông chữ vào /fonts. Vì vậy, cả Debug và Release đều hoạt động tốt.

1

tất cả các câu trả lời cuối cùng không phù hợp với tôi. Tôi có thể thấy rằng url được trang yêu cầu cho tài nguyên giống như 'YourWebsite/fonts/fontawesome-webfont.woff2? V = 4.7.0'

Sau đó, tôi quyết định tạo gói fontawesome với đường dẫn "~/bundles/fonts "

bundles. Thêm (styleBundle mới (" ~/bundles/fonts ") .Bao gồm (" ~/Nội dung/phông chữ tuyệt vời.css", CssRewriteUrlTransform mới()));

sau đó làm việc cho tôi

Các vấn đề liên quan