Câu hỏi Làm cách nào để bắt buộc làm mới favicon


Tôi có một ứng dụng Grails chạy cục bộ bằng cách sử dụng tomcat của riêng mình và tôi vừa thay đổi favicon cho một cái mới. Vấn đề là tôi không thể nhìn thấy nó trong bất kỳ trình duyệt nào. Các favicon cũ xuất hiện hoặc tôi nhận được không có favicon cả, nhưng không phải là mới của tôi. Tôi không nghĩ rằng đây là một vấn đề Grails mỗi se, thêm một vấn đề wavicons wth.

Điều gì được cho là xảy ra với favicon? Họ phải làm việc như thế nào? Tôi có nhiều dấu trang trong trình duyệt của tôi có biểu tượng sai và chúng dường như không bao giờ được làm mới. Làm cách nào để buộc máy chủ / trình duyệt ngừng lưu vào bộ nhớ cache? Nó có vẻ khá ngớ ngẩn để luôn luôn cache chúng cho họ thường chỉ 16x16. Tại sao không chỉ tải lên mỗi lượt truy cập vào trang, nó không chính xác là một chi phí khổng lồ.


1364
2018-02-05 17:09


gốc


Giải pháp được chấp nhận và được đánh giá cao là KHÔNG thực sự là giải pháp. Lý do thực sự tại sao làm mới sẽ không hoạt động có thể được tìm thấy trong giải pháp của câu hỏi này: stackoverflow.com/questions/8616016/… --- bộ nhớ cache biểu tượng nằm trong tệp sqlite DB, độc lập với bộ nhớ cache của trình duyệt! - Mörre
Giải pháp được chấp nhận và được đánh giá cao là giải pháp cho sản xuất, hoặc tôi sẽ viết hướng dẫn cho người dùng cách xóa bộ nhớ cache favicon của họ khi chúng tôi cập nhật favicon cho sản xuất? - Miroslav Saracevic
Không phải là một giải pháp chung. Điều gì xảy ra nếu bạn đang sử dụng vị trí mặc định của favicon mà không cần chạm vào mã? Đó là một favicon.ico tệp trong thư mục gốc của tài liệu của bạn. - Sebastian


Các câu trả lời:


Để làm mới favicon của trang web, bạn có thể buộc trình duyệt tải xuống phiên bản mới bằng cách sử dụng thẻ liên kết và chuỗi truy vấn trên tên tệp của bạn. Điều này đặc biệt hữu ích trong môi trường sản xuất để đảm bảo người dùng của bạn nhận được bản cập nhật.

<link rel="icon" href="http://www.yoursite.com/favicon.ico?v=2" />

1892
2017-08-19 03:39



Điều này đã làm cho các trick cho tôi. Tôi đã phải loại bỏ type="image/x-icon" từ mã của tôi, trái với nhiều nguồn. Tôi đã sử dụng dấu thời gian sửa đổi tệp cho v?=2 một phần của truy vấn. - Wertisdk
Tôi đã thấy rằng trong một số trình duyệt, favicon không có tupdate không có vấn đề gì trừ khi tôi xóa lịch sử. Sau đó, nó sẽ lưu favicon mới. - pathfinder
Thật không may bạn cần URL tuyệt đối đủ điều kiện cho IE7 (& IE8?) - xem jeffcode.blogspot.com.au/2007/12/… - eug
đồng ý với các nhận xét ở trên, nhưng điều này phù hợp với tôi trong tất cả các trình duyệt hiện tại: <link rel = "icon shortcut" href = "/ favicon.ico? v = 2" /> - Dave Sumter
Nó có ý nghĩa để bộ nhớ cache favicons bởi vì họ đôi khi đẩy 2-3 kilobyte trong kích thước. Bạn không muốn tiếp tục chuyển tất cả dữ liệu đó. (vâng, mỉa mai) - Flat Cat


Ok, sau 10 phút của wtf'ing, cách dễ dàng để sửa chữa nó là gần với của lineofbirds

  1. Nhập www.yoursite.com/favicon.ico (hoặc www.yoursite.com/apple-touch-icon.png, v.v.)
  2. Đẩy đi vào
  3. ctrl+f5
  4. Khởi động lại trình duyệt (IE, Firefox)

783
2018-03-08 23:45



Đối với bản ghi, đây không phải là cách an toàn để xóa biểu tượng khỏi bộ nhớ cache và trong hầu hết các trường hợp không hoạt động. Điều này là do thực tế là các biểu tượng được lưu trữ trong places.sql (nếu tôi không nhầm lẫn) và không phải trong bộ nhớ cache mặc định là một trong những xóa trong câu trả lời này. Câu trả lời của Marcus là cách tốt nhất với ít nỗ lực nhất. - e-motiv
không hoạt động trong chrome 36. - NimChimpsky
Sử dụng phương pháp này bạn có thể sẽ khắc phục bộ nhớ đệm, nhưng người dùng hiện tại của bạn không thể. Do đó, tôi thấy câu trả lời khác có giá trị hơn. - Demircan Celebi
Đáng chú ý rằng điều này không hoạt động trong Firefox 33. Câu trả lời đầu tiên là một lựa chọn tốt hơn. - Brent Waggoner
Phần "khởi động lại trình duyệt" là điều duy nhất thực sự làm cho nó hoạt động cho tôi. Tất cả các bản sửa lỗi khác đều hoạt động theo lý thuyết, nhưng không thực sự thay đổi các pixel favicon được hiển thị trên tab trình duyệt. +1 câu trả lời này - b264


Câu trả lời này chưa được đưa ra vì vậy tôi nghĩ rằng tôi muốn đăng nó. Tôi đã xem xét tất cả các trang web và không tìm thấy câu trả lời hay để thử nghiệm các favicon trong phát triển địa phương.

Trong phiên bản hiện tại của chrome (trên OSX) nếu bạn làm như sau, bạn sẽ nhận được một favicon làm mới ngay lập tức:

  1. Di chuột qua tab
  2. Click chuột phải
  3. Chọn tải lại
  4. Favicon của bạn bây giờ sẽ được làm mới

Đây là cách dễ nhất tôi đã tìm thấy để làm mới favicon cục bộ.


215
2017-09-23 19:14



Thật không may điều này không làm việc trong IE hoặc thậm chí Chrome trên Windows vì vậy có vẻ như bạn nên đi với câu trả lời được chấp nhận trừ khi bạn chỉ sử dụng Chrome trên OSX. - Christopher King
Không hoạt động với tôi - Chrome trên OS X - CtheGood
đây là điều duy nhất làm việc cho tôi! Chrome trên máy chủ cục bộ - Richard87
ding ding ding ding, đây là câu trả lời dễ nhất và tốt nhất! CHÚA ƠI! mẹo mới được học nhờ. Tôi đoán nó không phải là một mẹo nếu nó là một mục trình đơn chính. Tôi đoán khi chúng ta nghĩ về cách chúng ta có thể làm mới một cái gì đó trong tab điều cuối cùng chúng ta nghĩ là Oh well chúng ta hãy kích chuột phải vào nó và xem các tùy chọn xuất hiện .... - Eric Bishard
thật đáng buồn, tôi chỉ có thể đưa ra một mẹo tuyệt vời ... tuyệt vời !! : vỗ tay: - Celso Fernandes


Đổi tên tệp favicon và thêm tiêu đề html với tên mới, chẳng hạn như:

<link rel="SHORTCUT ICON" href="http://www.yoursite.com/favicon2.ico" />

52
2018-02-05 17:14



điều này làm gì? - Simon
Tôi sẽ giả sử trình duyệt có thể xem nếu tên favicon là như nhau. Nếu nó là nó sẽ không yêu cầu tải xuống của nó một lần nữa và sẽ sử dụng một đã được lưu trữ, nhưng nếu bạn thay đổi tên nó sẽ giả định nó đã thay đổi do đó yêu cầu nó từ máy chủ. - Bojan Kogoj
Tôi đã có vấn đề với IE8. Nó không sử dụng favicon.ico được đặt trong thư mục con. Việc thêm phím tắt 'thuộc tính rel' đã sửa nó. - tienbuiDE
Thats không làm mới ở tất cả, nó thay đổi nó hoàn toàn mới. - Zac
xin lưu ý rằng bạn phải đổi tên favicon.ico thực tế của bạn (nó sẽ nằm trong thư mục build của bạn hoặc thư mục mà webapp đang được phục vụ) - Rahil Ahmad


Nếu bạn sử dụng PHP, bạn cũng có thể sử dụng MD5-Hash của favicon như một chuỗi truy vấn:

<link rel="shortcut icon" href="favicon.ico?v=<?php echo md5_file('favicon.ico') ?>" />

Bằng cách này, Favicon sẽ luôn luôn làm mới khi nó đã được thay đổi.

Như đã chỉ ra trong các ý kiến, bạn cũng có thể sử dụng ngày sửa đổi cuối cùng thay vì MD5-Hash để đạt được điều tương tự và tiết kiệm một chút về hiệu suất máy chủ:

<link rel="shortcut icon" href="favicon.ico?v=<?php echo filemtime('favicon.ico') ?>" />

51
2018-06-11 14:54



Tốt, điều này tránh sự cần thiết phải thay đổi href mỗi khi tôi cập nhật các favicon, câu trả lời này sẽ có nhiều phiếu bầu hơn! - Sven van den Boogaart
Vấn đề với câu trả lời này là bạn đang tính toán băm đó trên mọi yêu cầu, và đó là điều không cần thiết và có thể làm tổn thương hiệu suất của trang (nếu có nhiều người dùng). - Diego Jancic
Nó không phải là lớn của một thỏa thuận trong cả hai ý nghĩa ... một favicon chỉ là một vài kilobyte ... Tôi có nghĩa là, nó sẽ không được ít căng thẳng trên máy chủ hơn là phải máy chủ favicon mỗi lần ... - Philippe Gilbert
Tôi vẫn không thấy bất kỳ lý do thực sự nào để tính toán MD5. Việc sử dụng ngày sửa đổi cuối cùng của tệp càng dễ dàng và hiệu quả hơn. Tôi thấy không có lợi thế của việc sử dụng MD5 trên tem sửa đổi cuối cùng. - NickG
Bạn thực sự cập nhật favicon của mình bao lâu một lần? Điều này có vẻ như quá mức cần thiết. Chỉ cần sử dụng chuỗi truy vấn thủ công khi bạn tạo biểu tượng mới. - zeros-and-ones


Nếu trên cửa sổ và sử dụng chrome, hãy thoát khỏi cửa sổ từ thanh tác vụ (Ctrl + Alt + Delete) và xóa tất cả các trường hợp, sau đó truy cập ...

C:\Users\your_username\AppData\Local\Google\Chrome\User Data\Default

hoặc là...

%appData%/../Local/Google/Chrome/User Data/Default

và xóa các tập tin Favicons-journal, Favicons

sau đó bắt đầu chrome


Vì giải pháp này liên quan đến việc khởi động lại trình duyệt của bạn, bạn có thể không quay trở lại đây khi bạn thành công .. vì vậy hãy cân nhắc bỏ phiếu ngay bây giờ .. tin tưởng tôi sẽ làm việc, cộng với bạn luôn có thể xóa phiếu bầu của bạn


38
2017-09-28 12:53



Điều này đã làm các trick. Đối với tôi, đây là vấn đề favicon của ứng dụng Google Chrome. Không phải là vấn đề về favicon DOM. - blackhawk
Đây là một câu trả lời tốt đáp ứng nhu cầu của tôi để thử nghiệm. Không có một câu trả lời thực sự nào cho câu hỏi này bởi vì nó phụ thuộc vào ai cần làm mới nó và những gì họ sẵn sàng và có khả năng làm một cách hợp lý. - Dovev Hefetz
Chỉ cần một chút cải tiến: cùng một đường dẫn cho bất kỳ tên người dùng nào là %appData%/../Local/Google/Chrome/User Data/Default - josemmo
Một giải pháp dễ dàng hơn trong Chrome là nhấp chuột phải và chọn Kiểm tra (hoặc CTRL + SHIFT + I), sau đó nhấp và giữ nút làm mới. Một menu sẽ xuất hiện với tùy chọn Làm mới, Tải lại Cứng, hoặc Bộ nhớ Cache trống và Tải lại Cứng. Thông thường Hard Reload sẽ làm điều đó, nhưng nếu nó cứng đầu vì lý do nào đó, Empty Cache và Hard Reload chắc chắn sẽ. - felwithe


Trong Chrome trên Mac OS X, người dùng có thể xóa tệp bằng bộ nhớ cache favicon

${user.home}/Library/Application Support/Google/Chrome/Default/Favicons 

27
2017-10-25 11:33



Giải pháp này làm việc cho tôi. Đối với một số lý do, nó đã không làm mới favicon với các phương pháp được đề cập ở trên với nhiều phiếu hơn nữa. Cảm ơn, Maxim Mazin. Tôi chỉ muốn loại bỏ một favicon cũ mà tôi biết không thể tồn tại nữa trên máy chủ mới của tôi. - tsaulic
Cách tiếp cận này cũng làm việc cho tôi trên Windows, nơi tôi đã gỡ bỏ các favicon từ ứng dụng của tôi, nhưng chrome vẫn hiển thị nó. Đóng Chrome, xóa "C: \ Users \ {user} \ AppData \ Local \ Google \ Chrome \ Dữ liệu người dùng \ Default \ Favicons", sau đó khởi động lại Chome. Các favicon không mong muốn cũ đã biến mất. - skomisa
Tôi không có gì trong "Mặc định" nhưng cuối cùng tôi đã tìm thấy biến thể này: ${user.home}/Library/Application Support/Google/Chrome/Profile 1/Favicons - mdahlman
@mdahlman Điều này ban đầu không làm việc cho tôi sau khi thử tất cả các phương pháp khác. Tuy nhiên tôi có một cái này để làm việc sau cmd+qing chrome, đi tới thanh trình đơn, buộc thoát khỏi Chrome một lần nữa và đợi 2 phút để mở trình duyệt và điều hướng trở lại trang web của tôi. - PrimeTimeTran


Vâng, chi phí là trên không, nhưng có, không quá lớn.

Ngoài ra, các trình duyệt đôi khi "tham lam" về các tệp được lưu trong bộ nhớ cache. Bạn có thể xóa bộ nhớ cache và / hoặc khởi động lại trình duyệt của mình và có thể thấy thay đổi. Nếu điều đó thất bại ...

Giải pháp cheapo của tôi là:

  1. Truy cập tệp của bạn tại http://example.com/favicon.ico trong trình duyệt của bạn.
  2. Xóa favicon.ico khỏi webroot của bạn.
  3. Chuyến thăm http://example.com/favicon.ico một lần nữa trong trình duyệt, xác minh nó bị thiếu.
  4. Tải hình mới lên webroot của bạn.
  5. Chuyến thăm http://example.com/favicon.ico một lần nữa trong trình duyệt, xác minh đó là trình duyệt mới.

Nếu chuỗi đó không hoạt động, thì cái gì đó khác đang diễn ra.


15
2018-02-05 17:15



Điều này làm việc cho tôi, nhưng thật đáng buồn chúng tôi không thể yêu cầu mọi khách truy cập làm điều này. - talentedmrjones
Điều này đã không làm việc trên firefox 34 trên linux - rubo77
Chuyến thăm example.com/favicon.ico và nhấn Ctrl + F5 / Ctrl + Shift + R nhiều lần làm việc cho tôi :) Cảm ơn ý tưởng! - Alfonso Nishikawa


Tùy thuộc vào trình duyệt, chúng được xử lý khác nhau, nhưng thông thường tôi thấy rằng chuyển sang trang mặc định của trang web và thực hiện làm mới khó. CTRL + F5, thường sẽ làm cho nó cập nhật.


11
2018-02-05 17:12



Điều này đã không làm việc trên firefox 34 trên linux - rubo77


Đối với Internet Explorer, có một giải pháp khác:

  1. Mở trình khám phá internet.
  2. Nhấp vào menu> công cụ> tùy chọn internet.
  3. Nhấp vào chung> tệp Internet tạm thời> nút "cài đặt".
  4. Nhấp vào nút "xem tệp".
  5. Tìm tập tin favicon.ico cũ của bạn và xóa nó.
  6. Khởi động lại trình duyệt (Internet explorer).

8
2017-11-25 01:10