2011-09-06 25 views
39

Tôi đã thiết lập một ứng dụng ảo trên localmachine của mình và nó đang chạy nhưng nó không tải tệp CSS. Và tôi đang sử dụng lessCSS để tạo kiểu cho ứng dụng của mình và tôi nghĩ lý do tại sao không tải css ở đây là bảng kiểu LESSCSS sử dụng phần mở rộng .less.Làm cách nào để thêm * .less vào IIS 7.0?

Vì vậy, phải làm gì để đọc phần mở rộng tệp * .less?

Trả lời

73

Không cần thêm trình xử lý. Chỉ cần thêm loại MIME (hiện được gọi là Loại phương tiện Internet) cho .less và đặt loại MIME thành text/css.

Máy chủ web thấy phần mở rộng của yêu cầu (giống như phần mở rộng của tệp). Nếu họ biết tiện ích mở rộng, họ phân phối tệp và thêm Trường Tiêu đề HTTP để cho biết rằng nội dung của tệp có định dạng. Ví dụ: khi chúng phân phối tệp HTML tĩnh, chúng thêm trường tiêu đề Content-Type: text/html. Bằng cách này, các trình duyệt có thể hiểu cách sử dụng ứng dụng nào để xử lý phần thân của phản hồi.

Nếu máy chủ web không biết tiện ích mở rộng yêu cầu, họ tìm kiếm xem có ứng dụng nào khác đã được cài đặt trên chúng hay không mà biết tiện ích. Nếu có một ứng dụng khác, thì chúng cho phép ứng dụng đó phục vụ tệp.

Bạn có thể nghĩ về ví dụ này để hoàn toàn hiểu những gì xảy ra:

Bạn đi đến một nhà hàng, (bạn là HTTP request). Bạn yêu cầu một bánh pizza (pizza là phần mở rộng). Đầu bếp biết làm thế nào để phục vụ pizza, do đó nó phục vụ bạn.

Bây giờ, hãy xem xét bạn đi đến cùng một nhà hàng vào một thời điểm khác và yêu cầu Bomyhoor (đồ ăn giả). Đầu bếp không biết nấu ăn và phục vụ như thế nào. Anh/cô ấy hỏi những đầu bếp khác để xem liệu có ai khác trong nhà bếp không (bếp là máy chủ web), ai biết nấu ăn như thế nào? Nếu ai đó biết ho để nấu Boomyhoor, thì họ sẽ phục vụ bạn.

Bây giờ, hãy xem xét bạn đi lần khác và lần này yêu cầu Graboori. Đầu bếp đã biết (từ một từ điển) rằng Graboori chỉ là một tên khác cho Pizza. Bởi vì anh ta biết làm thế nào để máy chủ pizza, anh ta chỉ đơn giản là phục vụ đó.

Khi bạn thêm loại MIME vào máy chủ web, bạn chỉ cần ánh xạ tiện ích yêu cầu vào loại tệp.

+6

Tôi nghĩ rằng OP đã hỏi về việc sử dụng trình xử lý HTTP tùy chỉnh để thực hiện chuyển đổi phía máy chủ. Tuy nhiên, câu trả lời của bạn là chính xác nếu sử dụng phương thức phía máy khách less.js. – Domenic

+1

Đây là SUPER nặng để làm trên bay cho mỗi người dùng duy nhất. OP đã tìm kiếm một trình biên dịch tự động để khi bạn hoàn thành việc chỉnh sửa .less (và lưu nó) nó biên dịch nó thành một tệp CSS và đặt nó vào đúng vị trí. Eclipse có một trình cắm thêm để phát triển và tôi biết bạn có thể thiết lập apache khi tải lên để làm điều đó cho bạn với các lệnh ít hơn trên một hộp linux, nhưng với IIS có vẻ như bạn sẽ phải sử dụng trình biên dịch cục bộ, hoặc dành một dịch vụ cho nó. – Relic

+6

Xin lưu ý rằng máy chủ web của bạn có thể trả lại mã lỗi HTTP 406 - không được chấp nhận nếu bạn xác định loại mime là văn bản/css. Bạn nên sử dụng text/less như mimetype. –

0

Câu trả lời được chấp nhận chỉ sửa lỗi ít hơn 406. Người ta có thể đối mặt với những lỗi 404, mô tả như thế nào lỗi này có thể được cố định có thể được tìm thấy ở đây: https://stackoverflow.com/a/28828628/3936440

0

bạn phải thêm

<staticContent> 
    <mimeMap fileExtension=".less" mimeType="text/css" /> 
</staticContent > 

vào Web.config

mẫu:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".less" mimeType="text/css" /> 
    </staticContent > 
    <rewrite> 
     <rules> 
     <rule name="WordPress: http://YourSite.com" patternSyntax="Wildcard"> 
      <match url="*" /> 
      <conditions> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      </conditions> 
      <action type="Rewrite" url="index.php" /> 
     </rule> 
     </rules> 
    </rewrite> 
    </system.webServer> 
    <system.web> 
    <authentication mode="None" /> 
    </system.web> 
</configuration> 
Các vấn đề liên quan