Vì sao một hình ảnh thất bại trong khi phần còn lại của trang vẫn tải
Ba điều kiện phân biệt lỗi mạng với yêu cầu bị chặn và lỗi hiển thị. Tìm URL mà trình duyệt đã chọn trước khi thay đổi đường dẫn.
Trang tải xong, văn bản hiển thị, còn một hình ảnh thì thành biểu tượng hỏng. Phản ứng đầu tiên là đổ lỗi cho đường hầm, vì đường hầm là thứ đã thay đổi. Trước đó, hãy tìm ra trình duyệt đã thực sự yêu cầu URL nào cho hình ảnh đó, vì URL của trang và URL của hình ảnh là hai bằng chứng khác nhau. Phần lớn báo cáo về hình ảnh bị thiếu đều dẫn đến một máy chủ chưa bao giờ nhận được yêu cầu hoạt động, và câu trả lời đó chỉ tốn một lần nhìn vào bảng Mạng.
Ba điều kiện quyết định nơi cần xem
Điều kiện thứ nhất là hình ảnh có đến từ cùng máy chủ với trang hay không. Một máy chủ hình ảnh riêng cần phân giải tên, kết nối và danh tính TLS của riêng nó, nên một trang tải được không nói gì về nó.
Điều kiện thứ hai là trình duyệt có chặn yêu cầu trước khi gửi hay không. Nội dung hỗn hợp, chính sách bảo mật nội dung và quy tắc referrer có thể dừng một hình ảnh mà không tạo ra phản hồi máy chủ thông thường, vì thế không có yêu cầu thất bại nào xuất hiện trong danh sách.
Điều kiện thứ ba là việc phân phối thành công mà việc hiển thị thất bại, trường hợp các byte đến nơi mà hình ảnh vẫn không hiện ra. Ba điều kiện đó có ba chủ sở hữu khác nhau, và chỉ điều kiện đầu là câu hỏi về mạng.
| What you see | Where the fault sits |
|---|---|
| Request absent from the list | Markup, lazy loading or a policy that blocked it |
| Request failed or timed out | Resolution, route, TLS or the image host itself |
| Request returned 200, image blank | Response type, decoding or rendering |
Tìm tài nguyên mà trình duyệt thực sự đã chọn
URL bạn thấy trong mã nguồn của trang thường không phải URL đã được yêu cầu. Bộ nguồn, phần tử picture và nền CSS đều cho phép trình duyệt chọn một tài nguyên khác dựa trên chiều rộng khung nhìn, mật độ điểm ảnh hoặc mức hỗ trợ định dạng. Một hình ảnh tải chậm có thể không được yêu cầu chút nào cho đến khi trang đạt một trạng thái nhất định.
Hãy kiểm tra phần tử và yêu cầu cùng nhau, và giữ trình khởi tạo đi kèm yêu cầu khi bạn báo cáo sự cố. Tài liệu tham chiếu phần tử hình ảnh của MDN bao quát việc chọn nguồn, hành vi tải và kiểm soát referrer trong một chỗ, đủ để nói thuộc tính nào đã chọn URL thất bại.
Ghi lại tên máy chủ, trạng thái, mọi chuỗi chuyển hướng và loại nội dung của phản hồi. Phản hồi 200 trả về một trang đăng nhập không phải là hình ảnh dùng được, và chuyển hướng đến trang lỗi HTML trông giống hệt một tệp hỏng cho đến khi bạn đọc loại.
Đọc trạng thái trước mạng
Hết thời gian chờ, yêu cầu bị từ chối và lỗi giải mã cần những bước tiếp theo khác nhau, và mã trạng thái là thứ phân biệt chúng. Hết thời gian chờ chỉ vào phân giải tên, tuyến hoặc một máy chủ không phản hồi. Yêu cầu bị từ chối chỉ vào chính sách hoặc tầng cấp quyền. Lỗi giải mã chỉ vào các byte hoặc định dạng.
Nếu yêu cầu hoàn toàn không xuất hiện, hãy ngừng xem mạng và xem đánh dấu. Nguyên nhân phổ biến nhất là một mục trong bộ nguồn được trình duyệt ưu tiên và không còn trên máy chủ, theo sau là một phần tử mà script chưa bao giờ làm cho hiển thị.
Chỉ sự phân biệt đó đã ngăn phần lớn công sức lãng phí trong loại báo cáo này.
Khi trình duyệt chặn, không có phản hồi nào để đọc
Nội dung hỗn hợp là trường hợp kinh điển: một trang HTTPS yêu cầu hình ảnh qua HTTP thường bị chặn yêu cầu thay vì thất bại, và bảng điều khiển ghi lại lý do. Chính sách bảo mật nội dung tạo ra hình dạng tương tự, với chỉ thị bị chặn được nêu trong thông báo. Một chính sách referrer loại bỏ tiêu đề cũng có thể khiến máy chủ được bảo vệ chống hotlink trả về một phần giữ chỗ thay vì hình ảnh.
Đọc lý do đã ghi lại trước khi chạm vào đường dẫn mạng, vì những chặn này không cải thiện khi tuyến thay đổi. Thêm quyền cross-origin cũng không phải là giải pháp: hiển thị hình ảnh từ máy chủ khác và đọc điểm ảnh của nó trong canvas là hai thao tác khác nhau, và chỉ thao tác thứ hai cần những tiêu đề mà người ta dán vào.
Đối với trang web bạn quản trị, hãy sửa URL tài nguyên, phản hồi hoặc chính sách tại chủ sở hữu của nó và giữ nguyên các yêu cầu về cấp quyền và referrer. Đối với trang web bạn không kiểm soát, hãy gửi trang và bằng chứng yêu cầu đến kênh hỗ trợ của nó thay vì đăng lại các liên kết tài nguyên riêng tư hoặc sắp hết hạn.
So sánh các đường dẫn mà không thay đổi bằng chứng
Nếu bạn thực sự muốn kiểm tra đường dẫn truy cập, hãy giữ mọi thứ khác cố định: cùng trang, cùng tài khoản, cùng hình ảnh đã chọn, một đường dẫn được phép thay đổi. So sánh các mục yêu cầu cạnh nhau thay vì kết quả hiển thị, vì kết quả hiển thị cho biết hình ảnh có xuất hiện hay không, chứ không phải vì sao.
Một hình ảnh tải được trên tuyến mới không chứng minh tuyến đó được cấp quyền, và một hình ảnh vẫn hỏng không chứng minh đường hầm có lỗi. Nếu hình ảnh đã bị xóa hoặc quyền truy cập bị hạn chế có chủ đích, hãy dùng một phương án thay thế được hỗ trợ thay vì tắt kiểm tra chứng chỉ hoặc sao chép tài liệu được bảo vệ của người khác.
Thứ tự công việc: xác định URL đã chọn, đọc trạng thái và loại, kiểm tra xem có lý do chặn được ghi lại không, rồi so sánh từng thay đổi đường dẫn một.