2012-04-28 34 views
26

Possible Duplicate:
@font-face not working on a client site?phông chữ CSS xác định không tìm thấy

tôi có các tập tin phông chữ sau đây trong cấu trúc thư mục này trong ứng dụng web ASP.Net MVC của tôi:

- [root]

| - Công

|| --fonts

||| --NuvoWeb-Medi.eot

||| --NuvoWeb-Medi.woff

Trong file CSS của tôi, tôi có việc kê khai phông chữ sau:

@font-face 
{ 
    font-family: NuvoWeb; 
    src: url(/Public/fonts/NuvoWeb-Medi.eot); 
} 
@font-face 
{ 
    font-family: NuvoWeb; 
    src: url(/Public/fonts/NuvoWeb-Medi.woff) format('woff'); 
} 

Tuy nhiên, khi tôi chạy ứng dụng, Firebug trả về lỗi sau:

"NetworkError: 404 Not Found - http://localhost:60194/Public/fonts/NuvoWeb-Medi.woff "

Vui lòng thông báo cho những gì tôi bị thiếu để làm việc này hoạt động.

+1

Bạn đã cố truy cập url này chưa? Có thể không có tệp nào? –

+0

Như tôi đã nói, tôi có các tệp đó trong cấu trúc thư mục được chỉ định; Họ chắc chắn có khi tôi mở thư mục trong Windows Explorer. Và nếu tôi nhấp vào liên kết, tôi nhận được phản hồi này: Lỗi HTTP 404.3 - Không tìm thấy Trang bạn đang yêu cầu không thể được phân phối do cấu hình tiện ích. Nếu trang là một tập lệnh, hãy thêm trình xử lý. Nếu tệp sẽ được tải xuống, hãy thêm bản đồ MIME. –

+0

Vì vậy, các tệp nằm trong thư mục, nhưng không được phục vụ bởi máy chủ? Và đó là một vấn đề máy chủ, không phải css, tôi có đúng không? –

Trả lời

66

Tìm thấy giải pháp here ...

Vấn đề là IIS không biết làm thế nào để phục vụ những tập tin mới trừ khi chúng tôi nói với nó như thế nào. Điều này có thể dễ dàng thực hiện vào những năm web.config trong phần của web.config <system.webServer> bằng cách thêm đoạn mã sau:

<staticContent> 
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
    <mimeMap fileExtension=".m4v" mimeType="video/m4v" /> 
    <mimeMap fileExtension=".ogg" mimeType="video/ogg" /> 
    <mimeMap fileExtension=".ogv" mimeType="video/ogg" /> 
    <mimeMap fileExtension=".webm" mimeType="video/webm" /> 
    <mimeMap fileExtension=".oga" mimeType="audio/ogg" /> 
    <mimeMap fileExtension=".spx" mimeType="audio/ogg" /> 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
    <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" /> 
    <remove fileExtension=".eot" /> 
    <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> 
    <mimeMap fileExtension=".otf" mimeType="font/otf" /> 
    <mimeMap fileExtension=".woff" mimeType="application/font-woff" /> 
</staticContent> 

Lưu ý rằng một số trong những phần mở rộng có thể đã được xử lý trong IIS (đối với tôi, .svg vẫn ổn). Bạn cần xóa các bản đồ đó khỏi phần này hoặc thêm <remove> các dòng như bản đồ cho .eot.

+1

Vì lý do nào đó, việc thêm chúng vào web.config của tôi cho một trang web được lưu trữ trong Cloud Rackspace sẽ phá vỡ tất cả CSS của tôi, như thể tệp CSS không còn được nhận dạng nữa. Bất kỳ đầu mối nào tại sao điều đó sẽ xảy ra? –

+0

Điều này là để làm cho ngày của người dân.Đối với một số lý do tôi đã cố gắng để thêm quy tắc filehandler cho các tập tin OTF. –

+2

cảm ơn sự giúp đỡ hữu ích của bạn! –

2

thư mục công cộng (css đây) ---> thư mục phông chữ (font đây -NuvoWeb-Medi.eot)

@font-face 
{ 
    font-family: 'NuvoWeb'; 
    src: url(fonts/NuvoWeb-Medi.eot); 
} 

bạn đã bị bỏ lỡ biểu tượng báo giá font-family: 'NuvoWeb';

7

đăng ký kiểu MIME trong web.config như sau:

<system.webServer> 
    <staticContent> 
     <remove fileExtension=".eot" /> 
     <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> 
    </staticContent> 
</system.webServer> 

này giải quyết vấn đề.

+0

nếu bạn có thể ở đây tôi, sau đó xin vui lòng cho tôi biết cách để cập nhật web.config thông qua ftp. Tôi mới cho máy chủ IIS. Hoặc vui lòng cho tôi biết rằng "tôi có thể làm được không? Hoặc cần yêu cầu hỗ trợ lưu trữ web của tôi?" –

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