2011-01-10 32 views
5

Ngày tốt lành!Kết hợp, thu nhỏ và gzip cho các tệp CSS và JavaScript cho ASP.NET MVC

Tôi đang tìm giải pháp để kết hợp, thu nhỏ và nén các tệp CSS và JavaScript. Có vẻ như họ có hai hình thức:

  • Trong hình thức ASP.NET handler \ mô-đun với các tập tin xử lý một cách nhanh chóng (với kết quả bộ nhớ đệm)
  • Ở dạng của VS xây dựng nhiệm vụ (để thực hiện xử lý khi xây dựng)

Nói chung tôi cũng ổn.

Tôi đã xem xét một số giải pháp (và tôi sử dụng trình xử lý ASP.NET từ bài viết này http://www.codeproject.com/KB/aspnet/httpcompression.aspx rất nhiều), nhưng có thể có điều gì đó "phải có" xuất hiện và tôi đã bỏ lỡ nó.

Cảm ơn trước!

Trả lời

6

Đây là lời khuyên của tôi cho bạn: sử dụng tác vụ xây dựng và bộ nhớ cache HTTP đầu ra.

Về nhiệm vụ xây dựng, bạn sẽ muốn kiểm tra trình khai thác JavaScript yêu thích của mình (yêu thích của tôi là Google Closure Minifier) có tiện ích dòng lệnh mà bạn có thể chỉ cần cắm vào tệp dự án, tệp MSBUILD hoặc tệp NANT. Cùng một thỏa thuận với CSS (cá nhân tôi sử dụng Yahoo! YUI Compressor). Nếu bạn đang sử dụng LESS, bạn chắc chắn có thể kết hợp điều này với máy nén YUI. Để tối ưu hóa hình ảnh, tôi muốn sử dụng optipng. Có hướng dẫn về cách những kẻ làm việc trên các trang web cá nhân của họ.

Bây giờ, sau khi bạn có các tệp này đẹp và được tối ưu hóa, bạn sẽ muốn xuất chúng bằng cách sử dụng trình xử lý hoặc tác vụ điều khiển cho MVC. Để thiết lập khi hết thời hạn để yêu cầu tiếp theo sẽ mặc định tập tin tải về yêu cầu đầu tiên, bạn sẽ muốn điều này để chạy trong mã của bạn:

Response.ExpiresAbsolute = DateTime.Now.AddYears(1); 

Hơn khả năng bạn sẽ muốn có một chiến lược bộ nhớ cache để bạn có thể thay đổi các tệp nội dung. Bạn sẽ làm điều này bằng cách chuyển một tham số ngẫu nhiên đến trình xử lý của bạn. Có một vài cách khác nhau để đi về điều này ... chỉ cần Google nó.

Hy vọng điều này sẽ hữu ích.

+0

Cảm ơn bạn đã phản hồi, tôi đã chơi rất nhiều với việc lắp ráp các đường ống đó bằng tay để xử lý CSS và JS (cho cả ASP.NET và PHP), bạn có thấy bất kỳ gói/thành phần nào không? – artvolk

+0

@artvolk Bạn có ý gì bởi 'bó/thành phần'? – zowens

+0

Tôi có nghĩa là một cái gì đó (thư viện? Dll? Msbuild nhiệm vụ?) Mà kết thúc tốt đẹp tất cả điều này một cách tốt đẹp vào VS. – artvolk

2

Tôi đang sử dụng telerik mvc components cho các trang web vừa và nhỏ. Thật đơn giản để thêm và cấu hình với NuGet.

+0

Cảm ơn bạn đã phản hồi, ý của bạn có phải là phần này của gói này không? http://www.telerik.com/products/aspnet-mvc/web-asset-managers.aspx#combination – artvolk

+0

Có. Người quản lý tài sản Web là những gì xử lý tất cả điều đó. Tôi đang sử dụng phiên bản nguồn mở của nó. –

2

Moth có thể (trong số những thứ khác) xử lý tất cả yêu cầu javascript/css của bạn khi đang di chuyển. Xem Wiki: Javascript.

Hơn hết, nó cũng có thể đặt tất cả javascript ở dưới cùng của trang, bao gồm cả các phần bạn viết trong phần xem của bạn! Wiki: Inline script.

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