fix missing rtl stylesheets
This commit is contained in:
parent
2f850510d7
commit
bcaed90744
|
@ -5,7 +5,7 @@ class StylesheetsController < ApplicationController
|
||||||
|
|
||||||
no_cookies
|
no_cookies
|
||||||
|
|
||||||
target,digest = params[:name].split("_")
|
target,digest = params[:name].split(/_([a-f0-9]{40})/)
|
||||||
|
|
||||||
cache_time = request.env["HTTP_IF_MODIFIED_SINCE"]
|
cache_time = request.env["HTTP_IF_MODIFIED_SINCE"]
|
||||||
cache_time = Time.rfc2822(cache_time) rescue nil if cache_time
|
cache_time = Time.rfc2822(cache_time) rescue nil if cache_time
|
||||||
|
|
|
@ -15,6 +15,7 @@ class DiscourseStylesheets
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.stylesheet_link_tag(target = :desktop)
|
def self.stylesheet_link_tag(target = :desktop)
|
||||||
|
|
||||||
tag = cache[target]
|
tag = cache[target]
|
||||||
|
|
||||||
return tag.dup.html_safe if tag
|
return tag.dup.html_safe if tag
|
||||||
|
|
|
@ -3,21 +3,36 @@ require 'spec_helper'
|
||||||
describe StylesheetsController do
|
describe StylesheetsController do
|
||||||
|
|
||||||
it 'can survive cache miss' do
|
it 'can survive cache miss' do
|
||||||
DiscourseStylesheets.cache.clear
|
|
||||||
DiscourseStylesheets.stylesheet_link_tag('desktop_rtl')
|
|
||||||
|
|
||||||
StylesheetCache.destroy_all
|
StylesheetCache.destroy_all
|
||||||
|
builder = DiscourseStylesheets.new('desktop_rtl')
|
||||||
|
builder.compile
|
||||||
|
|
||||||
|
digest = StylesheetCache.first.digest
|
||||||
|
StylesheetCache.destroy_all
|
||||||
|
|
||||||
# digestless
|
# digestless
|
||||||
get :show, name: 'desktop_rtl'
|
get :show, name: 'desktop_rtl'
|
||||||
expect(response).to be_success
|
expect(response).to be_success
|
||||||
|
|
||||||
|
StylesheetCache.destroy_all
|
||||||
|
|
||||||
|
get :show, name: "desktop_rtl_#{digest}"
|
||||||
|
expect(response).to be_success
|
||||||
|
|
||||||
|
cached = StylesheetCache.first
|
||||||
|
expect(cached.target).to eq 'desktop_rtl'
|
||||||
|
expect(cached.digest).to eq digest
|
||||||
|
|
||||||
# tmp folder destruction and cached
|
# tmp folder destruction and cached
|
||||||
`rm #{DiscourseStylesheets.cache_fullpath}/*`
|
`rm #{DiscourseStylesheets.cache_fullpath}/*`
|
||||||
|
|
||||||
get :show, name: 'desktop_rtl'
|
get :show, name: 'desktop_rtl'
|
||||||
expect(response).to be_success
|
expect(response).to be_success
|
||||||
|
|
||||||
|
get :show, name: "desktop_rtl_#{digest}"
|
||||||
|
expect(response).to be_success
|
||||||
|
|
||||||
# there is an edge case which is ... disk and db cache is nuked, very unlikely to happen
|
# there is an edge case which is ... disk and db cache is nuked, very unlikely to happen
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue