2013-06-26 28 views
5

Tôi không biết cách đặt câu hỏi. Và tôi không biết cách thẻ bên dưới hoạt động ...Hình ảnh có thông số - HTML

<img src="img.png?value=23"/> 

Thẻ này hoạt động tốt. Và nó render hình ảnh một cách chính xác. value=23 có một số hiệu ứng không ??? hoặc nó bị bỏ qua bởi trình duyệt ??

Tôi thậm chí không biết cách thực hiện điều này với Google !!! Có phải nó giống như truyền tham số cho Hình ảnh ??? Nếu đó là trường hợp, làm thế nào để lấy thuộc tính value. Tham số có bất kỳ ý nghĩa nào là

+0

Nhiều khả năng nó không làm bất cứ điều gì , nhưng bạn luôn có thể thử xóa nó và xem liệu có gì thay đổi không. Giải pháp duy nhất tôi có thể nghĩ là số có thể thay đổi khi hình ảnh thay đổi để đảm bảo khách hàng không sử dụng phiên bản được lưu trong bộ nhớ cache. – Travesty3

+0

ok! Nhưng câu hỏi của tôi là nó có ý nghĩa gì không ?? hoặc nó chỉ đơn giản là igored bởi trình duyệt ?? bcoz !! HTML là ngôn ngữ khoan dung nhất !!! nơi tất cả mọi thứ hoạt động không có lý do! – madhairsilence

Trả lời

1

Đối với mẫu này tôi không biết nó có nghĩa gì Nhưng nó có thể viết

<img src="path_img.png?<?php time() ?>" /> 

để buộc trình duyệt của bạn để tải tài nguyên mà không sử dụng bộ nhớ cache

+1

Chắc chắn ?? Bất kỳ tài liệu nào ??? liên kết ?? – madhairsilence

+0

Có cho tất cả các tài nguyên tĩnh (js, png ....) – cyrilkiller

-1

value=23 không bị trình duyệt của bạn bỏ qua mà bởi máy chủ.

Giống như truyền tham số cho máy chủ web. Đối với hình ảnh, nó sẽ bị bỏ qua.

+0

tại sao bạn downvote? – Charles

+0

Nói rằng nó bị bỏ qua bởi máy chủ là sai. Nó phụ thuộc vào máy chủ. – Uooo

2

Nếu hình ảnh này động theo một cách nào đó thì máy chủ đang lưu trữ hình ảnh này phải tạo hình ảnh từ mã PHP.

Hãy xem GD library, cho phép bạn sử dụng PHP để tạo hình ảnh dựa trên không có gì hoặc hình ảnh khác. Tham số phải được chuyển để bao gồm giá trị đó bên trong hình ảnh (ví dụ: hình ảnh bao gồm văn bản "123" hoặc tính toán bằng cách nào đó, ví dụ như ID người dùng).

Sau đó một .htaccess trên máy chủ ghi đè phần mở rộng của .png-.php (hoặc có lẽ một số khác) để làm cho nó trông giống như một hình ảnh chính hãng để một số thư viện và crawler, hoặc các kịch bản, vv

Một lựa chọn khác, đó là đây là một hình ảnh đơn giản và rằng value đang bị bỏ qua hoặc chỉ là ngẫu nhiên để đảm bảo hình ảnh không được lưu vào bộ nhớ cache.

2

value=23 chỉ có tác dụng nếu máy chủ sử dụng. Trình duyệt yêu cầu http://example.com/img.png?valud=23, vì vậy máy chủ sẽ thấy thông số.

Ví dụ: với PHP, nếu bạn sử dụng $_GET['value'] và biến đó thay đổi hình ảnh được gửi thì cần value=23.

Thông số thường được gửi kèm với hình ảnh để chỉ định chiều cao hoặc chiều rộng hoặc để xác định hình ảnh nào được tải.

+0

ok .. Như đã đề cập @Travesty .. Nếu giá trị là một số ngẫu nhiên, hoặc bất kỳ tham số ngẫu nhiên nào, sẽ "đặc biệt báo hiệu" trình duyệt hiểu nó là một hình ảnh mới và tránh lưu vào bộ nhớ đệm ?? – madhairsilence

+0

@madhairsilence Theo như trình duyệt có liên quan, nó không quan trọng nếu bạn đang yêu cầu 'img23.png' hoặc' img.png? Value = 23': trình duyệt giả định đó là một tệp khác cho dù đó có thực sự là hay không , do đó, nó không tải từ bộ nhớ cache, trừ khi 'imp.png? value = 23' đã được tải. – Mooseman

1

Chắc chắn là vậy!

Ví dụ: hãy xem phần phần mềm này nhằm mục đích định lại kích thước hình ảnh động.

http://imageresizing.net/docs/basics

Nếu làm đúng, thêm tham số để một url hình ảnh có thể là rất hữu ích.

Edit:

Như những người khác chỉ ra, bạn cần phải đảm bảo rằng các máy chủ biết làm thế nào để xử lý các tham số thêm. Trong trường hợp này, nó được thiết kế để thay đổi kích thước/watermark/xoay một hình ảnh. Nó chắc chắn có thể làm những điều tuyệt vời khác.

+0

Điều đó tùy thuộc vào máy chủ lưu trữ hình ảnh - nếu nó được tạo động hay không. Bạn làm cho nó âm thanh như nó có thể được giả định rằng logic này áp dụng ở khắp mọi nơi. – casraf

+0

@ChenAsraf, tôi đã chỉnh sửa câu trả lời để làm rõ câu trả lời. –

+0

Ok! Chỉ muốn xác nhận !! Vì thế . trình duyệt thậm chí không biết tham số. Nó chỉ đơn giản là làm cho hình ảnh xem xét? như một số tham số! Và nó không có gì để làm với Caching rõ ràng !!! – madhairsilence

6

Tùy thuộc vào máy chủ, nếu bạn có loại png MIME dưới dạng văn bản và bạn phân tích các tệp như thể chúng là các tệp văn bản có mã php thì nó có hiệu lực.

Nó thực sự phụ thuộc vào cấu hình máy chủ không phải là trình duyệt.

Morover, mod_rewrite có thể được sử dụng để thay đổi tệp trông giống như png sang tệp php.

Thêm phân tích các file png qua phân tích cú pháp php AddType application/x-httpd-php .png

mod_rewrite

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_\-]*)\.png$ img.php?value=$1 

Với những dòng asdfasdf.png sẽ được coi như img.php?value=asdfasdf

Vì vậy, trong trường hợp này khi bạn sử dụng $_GET['value'] trên asdfasdf.png hoặc img.php?value=asdfasdf. Nó sẽ có hiệu lực.

Nếu máy chủ không được định cấu hình để thực hiện những việc như vậy và hình ảnh là hình ảnh (Có, tôi biết đó là câu briliant) thì nó không ảnh hưởng đến hình ảnh chung.

Để tổng hợp.

Nó phụ thuộc vào cấu hình máy chủ chứ không phải trên trình duyệt

0

Các luận trong một url này chủ yếu sử dụng để nhận một số thông tin về một mục cụ thể nhưng có thể được sử dụng trong nhiều cách khác. Khi nói về hình ảnh, trình duyệt sẽ không bỏ qua đối số value=23 nhưng máy chủ bạn đang sử dụng sẽ.

Nhưng nếu hình ảnh là loại động nào đó thì nó có thể được sử dụng để thay đổi URL của hình ảnh hoặc những thứ khác.

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