2010-04-21 29 views
8

Lời chàoKhông có kiểu/hình ảnh trên ứng dụng asp.Net MVC 2

tôi có một vấn đề nhỏ với ứng dụng ASP MVC của mình. Trên máy chủ phát triển cục bộ của tôi, mọi thứ hoạt động tốt nhưng khi tôi cố gắng xuất bản ứng dụng lên máy chủ IIS 7.0, nó chỉ hiển thị các trang đơn giản mà không có bất kỳ kiểu/đánh dấu/hình ảnh nào.

Tôi đặt tất cả những thứ đó vào/Nội dung/thư mục con nhưng khi tôi cố gắng truy cập vào thư mục đó trên máy chủ sản xuất, nó chỉ trả về lỗi 404 không tìm thấy.

tôi đặt máy chủ IIS với Net 4.0 và sau đó hướng dẫn triển khai trên đây: http://www.asp.net/learn/mvc/tutorial-08-cs.aspx

Tất cả views/controllers/lớp học dường như chỉ làm việc tốt, điều duy nhất mà không làm là thư mục con và nội dung tôi không thể hiểu tại sao.

Bất kỳ ai có đề xuất về những gì tôi có thể đã bỏ qua hoặc có ai biết vấn đề đó không?

+0

Điều gì sẽ xảy ra nếu bạn cố điều hướng trực tiếp đến tệp CSS từ trình duyệt của mình? –

+0

404 cũng vậy ... – xenolf

+0

Làm cách nào để bạn tham chiếu các tệp tĩnh của mình? Tương đối hay tuyệt đối? Ứng dụng của bạn được cấu hình như thế nào trên IIS? Là trang web gốc hoặc dưới dạng thư mục ứng dụng trong trang web khác? –

Trả lời

0

Kiểm tra thuộc tính của các thư mục nội dung của bạn ... xem chúng không phải là 'sao chép cục bộ' vì một lý do nào đó.

+1

Chỉ cần kiểm tra xem ... mọi thứ đã được sao chép hoàn toàn ... có vẻ như bằng cách nào đó định tuyến bị rối tung lên cho các tệp hiện có. Im bằng cách sử dụng định tuyến mặc định mà thực sự nên chăm sóc đó, hoặc tôi nhầm? – xenolf

2

Điều này là do bạn có thể đang sử dụng đường dẫn cố định trên src, như: ../../Content/Styles/style.css. Trong MVC, bạn nên sử dụng trình trợ giúp Url: Url.Content("~/Content/Styles/style.css").

Sử dụng trình trợ giúp url bạn không nên gặp sự cố.

10

Tôi đã gặp vấn đề tương tự, nhưng tôi đã tìm thấy lý do tại sao nó buộc phải xác thực trên thư mục Nội dung.

Khi người dùng chưa đăng nhập, họ được phân loại là Xác thực ẩn danh. Trong IIS7 (đó là những gì tôi đang sử dụng, đoán nó là như nhau trong IIS6), bạn cần phải mở cửa sổ xác thực trong các tính năng xem. Sau đó, chỉnh sửa Xác thực ẩn danh, để sử dụng nhận dạng nhóm ứng dụng của bạn hoặc danh tính mặc định, chỉ cần đảm bảo rằng người dùng có quyền đọc trong thư mục đó.

Điều đó đã sửa nó cho tôi, hy vọng nó phù hợp với bạn.

+0

Cảm ơn bạn Conner, đã giải quyết được vấn đề của tôi – arame3333

+0

Cảm ơn bạn, giải pháp thực sự! – Tomas

1

Được kéo tóc của tôi ra cả đêm với cái này.

On W2K8, MVC2, .NET 4.0, và IIS 7 (sử dụng VS 2010)

Made chắn rằng IIS_IUSRS có đầy đủ các quyền đối với thư mục gốc nhưng vẫn không đi - css, js, hình ảnh vẫn không được truy cập trong hiển thị trang ....

và sau đó .... rất đơn giản:

trong Tính năng xem cho các trang web - loại MIME định nghĩa cho .js, .css, và .jpg - và thì đấy!

Ngọt ngào!

p.s. ứng dụng mvc đầu tiên của tôi - và tôi nghĩ tôi thích nó ...

3

Vâng, tôi đã thêm IIS_IUSR s vào thư mục dự án và tìm thấy cùng một vấn đề:
CSS sẽ không tải và không có gì từ thư mục nội dung .
Nhưng nó đã giải quyết được sự cố Unable to start debugging on the web server.
Sau đó, tôi đã thêm IUSR vào cùng thư mục và đã khắc phục sự cố.Bây giờ, tôi có thể thấy hình ảnh, phong cách css và tất cả những thứ đó.

+0

khi tôi chia sẻ forrover wwwroot của tôi (cho một người dùng khác) thì nó đã xóa cài đặt IUSR! mất một vài giờ về lỗi này. Cảm ơn. –

0

Thư mục mà thư mục ảo của bạn trỏ đến cung cấp cho người dùng "Tất cả" thuộc tính đọc.

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