mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 14:55:40 +08:00
PERF: missing caching on CSS and Site Customizations
This commit is contained in:
parent
2b208db071
commit
4fbfc6ddbc
|
@ -2,6 +2,13 @@ class SiteCustomizationsController < ApplicationController
|
||||||
skip_before_filter :preload_json, :check_xhr, :redirect_to_login_if_required
|
skip_before_filter :preload_json, :check_xhr, :redirect_to_login_if_required
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
version = params["v"]
|
||||||
|
|
||||||
|
if version && version == request.headers['If-None-Match']
|
||||||
|
return render nothing: true, status: 304
|
||||||
|
end
|
||||||
|
|
||||||
|
response.headers["ETag"] = version if version
|
||||||
expires_in 1.year, public: true
|
expires_in 1.year, public: true
|
||||||
render text: SiteCustomization.stylesheet_contents(params[:key], params[:target] == "mobile" ? :mobile : :desktop),
|
render text: SiteCustomization.stylesheet_contents(params[:key], params[:target] == "mobile" ? :mobile : :desktop),
|
||||||
content_type: "text/css"
|
content_type: "text/css"
|
||||||
|
|
|
@ -4,8 +4,12 @@ class StylesheetsController < ApplicationController
|
||||||
def show
|
def show
|
||||||
|
|
||||||
target,digest = params[:name].split("_")
|
target,digest = params[:name].split("_")
|
||||||
|
|
||||||
digest_orig = digest
|
digest_orig = digest
|
||||||
|
|
||||||
|
if digest_orig && digest_orig == request.headers['If-None-Match']
|
||||||
|
return render nothing: true, status: 304
|
||||||
|
end
|
||||||
|
|
||||||
digest = "_" + digest if digest
|
digest = "_" + digest if digest
|
||||||
|
|
||||||
# Security note, safe due to route constraint
|
# Security note, safe due to route constraint
|
||||||
|
@ -26,6 +30,7 @@ class StylesheetsController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
response.headers['ETag'] = digest_orig if digest_orig
|
||||||
expires_in 1.year, public: true unless Rails.env == "development"
|
expires_in 1.year, public: true unless Rails.env == "development"
|
||||||
send_file(location, disposition: :inline)
|
send_file(location, disposition: :inline)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user