Fix favicon not updating on the client side when changed.

Regression from 1c6a2262b3.

Documented the rational for include the url since we can't really test
this properly.
This commit is contained in:
Guo Xiang Tan 2019-03-14 15:36:12 +08:00
parent 40b03e717b
commit b9ab393d70
2 changed files with 10 additions and 2 deletions

View File

@ -62,7 +62,15 @@ const Discourse = Ember.Application.extend({
@observes("notifyCount")
faviconChanged() {
if (Discourse.User.currentProp("dynamic_favicon")) {
const url = Discourse.getURL("/favicon/proxied");
let url = Discourse.SiteSettings.site_favicon_url;
// Since the favicon is cached on the browser for a really long time, we
// append the favicon_url as query params to the path so that the cache
// is not used when the favicon changes.
if (/^http/.test(url)) {
url = Discourse.getURL("/favicon/proxied?" + encodeURIComponent(url));
}
new window.Favcount(url).set(this.get("notifyCount"));
}
},

View File

@ -124,7 +124,7 @@ class StaticController < ApplicationController
is_asset_path
hijack do
data = DistributedMemoizer.memoize("FAVICON#{SiteSetting.favicon&.id}", 60 * 30) do
data = DistributedMemoizer.memoize("FAVICON#{SiteSetting.site_favicon_url}", 60 * 30) do
favicon = SiteSetting.favicon
next "" unless favicon