wordmark 0.21.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -550
- data/README.md +60 -44
- data/app/assets/fonts/easy/outfit-latin-ext.woff2 +0 -0
- data/app/assets/fonts/easy/outfit-latin.woff2 +0 -0
- data/app/assets/images/easy/sprite.svg +52 -0
- data/app/assets/javascripts/easy/flyer.js +100 -0
- data/app/assets/javascripts/easy/konami.js +68 -0
- data/app/assets/javascripts/easy/modal.js +48 -0
- data/app/assets/javascripts/easy/pin_code.js +43 -0
- data/app/assets/javascripts/easy/report_sort.js +44 -0
- data/app/assets/javascripts/easy/rotating_placeholder.js +35 -0
- data/app/assets/stylesheets/easy/base.css +35 -0
- data/app/assets/stylesheets/easy/components.css +388 -0
- data/app/assets/stylesheets/easy/layout.css +44 -0
- data/app/assets/stylesheets/easy/tokens.css +9 -0
- data/app/controllers/wordmark/errors_controller.rb +41 -0
- data/app/helpers/wordmark/easy_helper.rb +28 -0
- data/app/models/aircraft_avatar.rb +59 -0
- data/app/views/easy/_flyer.html.erb +10 -0
- data/app/views/easy/_modal.html.erb +14 -0
- data/app/views/easy/_pin_code.html.erb +9 -0
- data/app/views/easy/_report_head.html.erb +19 -0
- data/app/views/easy/mailer/_code.html.erb +67 -0
- data/app/views/easy/mailer/_code.text.erb +16 -0
- data/app/views/layouts/easy/site.html.erb +50 -0
- data/app/views/layouts/wordmark/errors.html.erb +26 -0
- data/app/views/wordmark/errors/show.html.erb +15 -0
- data/art/blackbox.svg +6 -0
- data/art/data.svg +8 -0
- data/art/dataplate.svg +12 -0
- data/art/drive.svg +6 -0
- data/art/hangar.svg +6 -0
- data/art/index.html.erb +25 -25
- data/art/lens.svg +9 -0
- data/art/mirroring.svg +8 -0
- data/art/refinery.svg +9 -0
- data/art/rollaway.svg +12 -0
- data/art/stockroom.svg +12 -0
- data/art/tower.svg +12 -0
- data/art/wordmark.svg +3 -0
- data/config/aircraft_avatars.yml +26 -0
- data/lib/wordmark/engine.rb +22 -28
- data/lib/wordmark/helpers/heads.rb +6 -6
- data/lib/wordmark/marks.rb +14 -4
- data/lib/wordmark/version.rb +1 -1
- data/lib/wordmark.rb +11 -6
- data/public/_headers +4 -8
- data/public/bh/js/bh.js +15 -15
- data/public/down/{goldrush.html → blackbox.html} +5 -5
- data/public/down/{fountain.html → data.html} +5 -5
- data/public/down/dataplate.html +87 -0
- data/public/down/drive.html +87 -0
- data/public/down/{houston.html → hangar.html} +5 -5
- data/public/down/lens.html +87 -0
- data/public/down/{autopilot.html → mirroring.html} +5 -5
- data/public/down/refinery.html +87 -0
- data/public/down/rollaway.html +87 -0
- data/public/down/stockroom.html +87 -0
- data/public/down/tower.html +87 -0
- data/public/down/wordmark.html +87 -0
- data/public/favicon/blackbox-180.png +0 -0
- data/public/favicon/blackbox-192.png +0 -0
- data/public/favicon/blackbox-512.png +0 -0
- data/public/favicon/blackbox-96.png +0 -0
- data/public/favicon/blackbox-dev.svg +6 -0
- data/public/favicon/blackbox.ico +0 -0
- data/public/favicon/blackbox.svg +6 -0
- data/public/favicon/blackbox.webmanifest +12 -0
- data/public/favicon/data-180.png +0 -0
- data/public/favicon/data-192.png +0 -0
- data/public/favicon/data-512.png +0 -0
- data/public/favicon/data-96.png +0 -0
- data/public/favicon/data-dev.svg +8 -0
- data/public/favicon/data.ico +0 -0
- data/public/favicon/data.svg +8 -0
- data/public/favicon/data.webmanifest +12 -0
- data/public/favicon/dataplate-180.png +0 -0
- data/public/favicon/dataplate-192.png +0 -0
- data/public/favicon/dataplate-512.png +0 -0
- data/public/favicon/dataplate-96.png +0 -0
- data/public/favicon/dataplate-dev.svg +12 -0
- data/public/favicon/dataplate.ico +0 -0
- data/public/favicon/dataplate.svg +12 -0
- data/public/favicon/dataplate.webmanifest +12 -0
- data/public/favicon/drive-180.png +0 -0
- data/public/favicon/drive-192.png +0 -0
- data/public/favicon/drive-512.png +0 -0
- data/public/favicon/drive-96.png +0 -0
- data/public/favicon/drive-dev.svg +6 -0
- data/public/favicon/drive.ico +0 -0
- data/public/favicon/drive.svg +6 -0
- data/public/favicon/drive.webmanifest +12 -0
- data/public/favicon/hangar-180.png +0 -0
- data/public/favicon/hangar-192.png +0 -0
- data/public/favicon/hangar-512.png +0 -0
- data/public/favicon/hangar-96.png +0 -0
- data/public/favicon/hangar-dev.svg +6 -0
- data/public/favicon/hangar.ico +0 -0
- data/public/favicon/hangar.svg +6 -0
- data/public/favicon/hangar.webmanifest +12 -0
- data/public/favicon/lens-180.png +0 -0
- data/public/favicon/lens-192.png +0 -0
- data/public/favicon/lens-512.png +0 -0
- data/public/favicon/lens-96.png +0 -0
- data/public/favicon/lens-dev.svg +9 -0
- data/public/favicon/lens.ico +0 -0
- data/public/favicon/lens.svg +9 -0
- data/public/favicon/lens.webmanifest +12 -0
- data/public/favicon/mirroring-180.png +0 -0
- data/public/favicon/mirroring-192.png +0 -0
- data/public/favicon/mirroring-512.png +0 -0
- data/public/favicon/mirroring-96.png +0 -0
- data/public/favicon/mirroring-dev.svg +8 -0
- data/public/favicon/mirroring.ico +0 -0
- data/public/favicon/mirroring.svg +8 -0
- data/public/favicon/mirroring.webmanifest +12 -0
- data/public/favicon/refinery-180.png +0 -0
- data/public/favicon/refinery-192.png +0 -0
- data/public/favicon/refinery-512.png +0 -0
- data/public/favicon/refinery-96.png +0 -0
- data/public/favicon/refinery-dev.svg +9 -0
- data/public/favicon/refinery.ico +0 -0
- data/public/favicon/refinery.svg +9 -0
- data/public/favicon/refinery.webmanifest +12 -0
- data/public/favicon/rollaway-180.png +0 -0
- data/public/favicon/rollaway-192.png +0 -0
- data/public/favicon/rollaway-512.png +0 -0
- data/public/favicon/rollaway-96.png +0 -0
- data/public/favicon/rollaway-dev.svg +12 -0
- data/public/favicon/rollaway.ico +0 -0
- data/public/favicon/rollaway.svg +12 -0
- data/public/favicon/rollaway.webmanifest +12 -0
- data/public/favicon/stockroom-180.png +0 -0
- data/public/favicon/stockroom-192.png +0 -0
- data/public/favicon/stockroom-512.png +0 -0
- data/public/favicon/stockroom-96.png +0 -0
- data/public/favicon/stockroom-dev.svg +12 -0
- data/public/favicon/stockroom.ico +0 -0
- data/public/favicon/stockroom.svg +12 -0
- data/public/favicon/stockroom.webmanifest +12 -0
- data/public/favicon/tower-180.png +0 -0
- data/public/favicon/tower-192.png +0 -0
- data/public/favicon/tower-512.png +0 -0
- data/public/favicon/tower-96.png +0 -0
- data/public/favicon/tower-dev.svg +12 -0
- data/public/favicon/tower.ico +0 -0
- data/public/favicon/tower.svg +12 -0
- data/public/favicon/tower.webmanifest +12 -0
- data/public/favicon/wordmark-180.png +0 -0
- data/public/favicon/wordmark-192.png +0 -0
- data/public/favicon/wordmark-512.png +0 -0
- data/public/favicon/wordmark-96.png +0 -0
- data/public/favicon/wordmark-dev.svg +3 -0
- data/public/favicon/wordmark.ico +0 -0
- data/public/favicon/wordmark.svg +3 -0
- data/public/favicon/wordmark.webmanifest +12 -0
- data/public/index.html +49 -33
- data/public/logo/blackbox.png +0 -0
- data/public/logo/blackbox.svg +6 -0
- data/public/logo/data.png +0 -0
- data/public/logo/data.svg +8 -0
- data/public/logo/dataplate.png +0 -0
- data/public/logo/dataplate.svg +12 -0
- data/public/logo/drive.png +0 -0
- data/public/logo/drive.svg +6 -0
- data/public/logo/hangar.png +0 -0
- data/public/logo/hangar.svg +6 -0
- data/public/logo/lens.png +0 -0
- data/public/logo/lens.svg +9 -0
- data/public/logo/mirroring.png +0 -0
- data/public/logo/mirroring.svg +8 -0
- data/public/logo/refinery.png +0 -0
- data/public/logo/refinery.svg +9 -0
- data/public/logo/rollaway.png +0 -0
- data/public/logo/rollaway.svg +12 -0
- data/public/logo/stockroom.png +0 -0
- data/public/logo/stockroom.svg +12 -0
- data/public/logo/tower.png +0 -0
- data/public/logo/tower.svg +12 -0
- data/public/logo/wordmark.png +0 -0
- data/public/logo/wordmark.svg +3 -0
- metadata +173 -72
- data/art/autopilot.svg +0 -9
- data/art/fountain.svg +0 -9
- data/art/goldrush.svg +0 -7
- data/art/houston.svg +0 -8
- data/lib/wordmark/down.rb +0 -19
- data/public/favicon/autopilot-180.png +0 -0
- data/public/favicon/autopilot-192.png +0 -0
- data/public/favicon/autopilot-512.png +0 -0
- data/public/favicon/autopilot-96.png +0 -0
- data/public/favicon/autopilot-dev.svg +0 -9
- data/public/favicon/autopilot.ico +0 -0
- data/public/favicon/autopilot.svg +0 -9
- data/public/favicon/autopilot.webmanifest +0 -12
- data/public/favicon/fountain-180.png +0 -0
- data/public/favicon/fountain-192.png +0 -0
- data/public/favicon/fountain-512.png +0 -0
- data/public/favicon/fountain-96.png +0 -0
- data/public/favicon/fountain-dev.svg +0 -9
- data/public/favicon/fountain.ico +0 -0
- data/public/favicon/fountain.svg +0 -9
- data/public/favicon/fountain.webmanifest +0 -12
- data/public/favicon/goldrush-180.png +0 -0
- data/public/favicon/goldrush-192.png +0 -0
- data/public/favicon/goldrush-512.png +0 -0
- data/public/favicon/goldrush-96.png +0 -0
- data/public/favicon/goldrush-dev.svg +0 -7
- data/public/favicon/goldrush.ico +0 -0
- data/public/favicon/goldrush.svg +0 -7
- data/public/favicon/goldrush.webmanifest +0 -12
- data/public/favicon/houston-180.png +0 -0
- data/public/favicon/houston-192.png +0 -0
- data/public/favicon/houston-512.png +0 -0
- data/public/favicon/houston-96.png +0 -0
- data/public/favicon/houston-dev.svg +0 -8
- data/public/favicon/houston.ico +0 -0
- data/public/favicon/houston.svg +0 -8
- data/public/favicon/houston.webmanifest +0 -12
- data/public/logo/autopilot.png +0 -0
- data/public/logo/autopilot.svg +0 -9
- data/public/logo/fountain.png +0 -0
- data/public/logo/fountain.svg +0 -9
- data/public/logo/goldrush.png +0 -0
- data/public/logo/goldrush.svg +0 -7
- data/public/logo/houston.png +0 -0
- data/public/logo/houston.svg +0 -8
- data/public/v0.21.0/bh/css/bh.css +0 -1
- data/public/v0.21.0/bh/js/bh.js +0 -152
- data/public/v0.21.0/bh/theme/bootstrap.css +0 -10
- data/public/v0.21.0/bh/theme/dawn.css +0 -189
- data/public/v0.21.0/bh/theme/dracula.css +0 -189
- data/public/v0.21.0/bh/theme/gruvbox.css +0 -189
- data/public/v0.21.0/bh/theme/monokai.css +0 -190
- data/public/v0.21.0/bh/theme/nord.css +0 -189
- data/public/v0.21.0/bh/theme/one_dark.css +0 -189
- data/public/v0.21.0/bh/theme/solarized.css +0 -188
- data/public/v0.21.0/bh/theme/tokyo_night.css +0 -189
- data/public/v0.21.0/css/easyfaa.css +0 -1
- data/public/v0.21.0/font/bootstrap-icons-FRBPO3H7.woff2 +0 -0
- data/public/v0.21.0/font/ibm-plex-sans-500-latin-LA7QXWWL.woff2 +0 -0
- data/public/v0.21.0/font/ibm-plex-sans-500-latin-ext-X4QHZICY.woff2 +0 -0
- data/public/v0.21.0/font/ibm-plex-sans-500-latin-ext.woff2 +0 -0
- data/public/v0.21.0/font/ibm-plex-sans-500-latin.woff2 +0 -0
- data/public/v0.21.0/font/ibm-plex-sans-500-vietnamese-24B6BSND.woff2 +0 -0
- data/public/v0.21.0/font/ibm-plex-sans-500-vietnamese.woff2 +0 -0
- data/public/v0.21.0/js/easyfaa.js +0 -1
data/lib/wordmark/engine.rb
CHANGED
|
@@ -2,52 +2,46 @@
|
|
|
2
2
|
require 'rails'
|
|
3
3
|
|
|
4
4
|
module Wordmark
|
|
5
|
-
# Hooks the gem into a host app: serves its files, its error pages and its helpers.
|
|
5
|
+
# Hooks the gem into a host app: serves its files, its error pages and its helpers. The easy
|
|
6
|
+
# design system's stylesheets, scripts, fonts and icons are under `app/assets`, which the
|
|
7
|
+
# host's asset pipeline reads as its own: `stylesheet_link_tag "easy/tokens"`.
|
|
6
8
|
class Engine < ::Rails::Engine
|
|
7
9
|
# The folders the design site publishes, served from this gem at the same paths so a
|
|
8
|
-
# page on an app and a page on the site link one file
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
PREFIXES = %W[/css/ /js/ /theme/ /font/ /logo/ /favicon/ /page/ /v#{VERSION}/].freeze
|
|
10
|
+
# page on an app and a page on the site link one file. Each keeps its slash:
|
|
11
|
+
# `Rack::Static` matches on `start_with?`, and `/page` would swallow `/pages` itself.
|
|
12
|
+
PREFIXES = %w[/css/ /js/ /theme/ /font/ /logo/ /favicon/ /page/].freeze
|
|
12
13
|
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
# at all, so a browser may keep them for good.
|
|
14
|
+
# A file is asked for again on every full load and answered `304 Not Modified` while it
|
|
15
|
+
# stands, since its URL never changes between versions. A font, whose name carries a hash
|
|
16
|
+
# of its bytes, never changes at all, so a browser may keep it for good.
|
|
17
17
|
HEADERS = [
|
|
18
18
|
[:all, { 'cache-control' => 'no-cache' }],
|
|
19
19
|
['/font/', { 'cache-control' => 'public, max-age=31536000, immutable' }],
|
|
20
|
-
['/v', { 'cache-control' => 'public, max-age=31536000, immutable' }],
|
|
21
20
|
].freeze
|
|
22
21
|
|
|
23
|
-
# What a file is kept for while the gem is being worked on: not at all, since the
|
|
24
|
-
# version's copy is rewritten under the same name until it is released, and a browser
|
|
25
|
-
# told to keep it for a year would show yesterday's stylesheet on today's page.
|
|
26
|
-
DEVELOPMENT_HEADERS = HEADERS.first 1
|
|
27
|
-
|
|
28
22
|
# Before `Rails::Rack::Logger`, so fetching a stylesheet writes no `Started GET` line, and
|
|
29
23
|
# cascading, so a host route under one of these prefixes still answers.
|
|
30
24
|
initializer 'wordmark.assets' do |app|
|
|
31
|
-
headers = Rails.env.development? ? DEVELOPMENT_HEADERS : HEADERS
|
|
32
25
|
app.middleware.insert_before Rails::Rack::Logger, Rack::Static,
|
|
33
26
|
urls: PREFIXES, root: Engine.root.join('public').to_s,
|
|
34
|
-
header_rules:
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
# The branded error pages, read by status from `public/page` the way Rails reads a host's
|
|
38
|
-
# own `public/`, unless the host has already named an app of its own.
|
|
39
|
-
initializer 'wordmark.exceptions' do |app|
|
|
40
|
-
app.config.exceptions_app ||=
|
|
41
|
-
ActionDispatch::PublicExceptions.new Engine.root.join('public/page').to_s
|
|
27
|
+
header_rules: HEADERS, cascade: true
|
|
42
28
|
end
|
|
43
29
|
|
|
44
|
-
# The page
|
|
45
|
-
|
|
46
|
-
|
|
30
|
+
# The same page for 400, 404, 422 and 500 on every app (Wordmark::ErrorsController), unless
|
|
31
|
+
# the host has already named an exceptions app of its own, and the page it shows while it
|
|
32
|
+
# is down at the path Heroku and a reader expect.
|
|
33
|
+
initializer 'wordmark.errors' do |app|
|
|
34
|
+
app.config.exceptions_app ||= app.routes
|
|
35
|
+
app.routes.prepend do
|
|
36
|
+
%w[400 404 422 500].each do |status|
|
|
37
|
+
get status, to: 'wordmark/errors#show', defaults: { status: status.to_i }
|
|
38
|
+
end
|
|
39
|
+
get 'down.html', to: 'wordmark/errors#down', format: false
|
|
40
|
+
end
|
|
47
41
|
end
|
|
48
42
|
|
|
49
43
|
initializer 'wordmark.helpers' do
|
|
50
|
-
ActiveSupport.on_load(:action_view) { include Wordmark::Helpers }
|
|
44
|
+
ActiveSupport.on_load(:action_view) { include Wordmark::Helpers, Wordmark::EasyHelper }
|
|
51
45
|
end
|
|
52
46
|
end
|
|
53
47
|
end
|
|
@@ -8,8 +8,8 @@ module Wordmark
|
|
|
8
8
|
|
|
9
9
|
# The stylesheet and the script every page needs, and the icons `app` is known by —
|
|
10
10
|
# this app unless said, since a page a customer reads may wear the house's mark rather
|
|
11
|
-
# than the app's. Both files at
|
|
12
|
-
#
|
|
11
|
+
# than the app's. Both files at a path no release changes, asked for again on every
|
|
12
|
+
# full load. A page refresh Turbo is sent morphs the page in place and keeps the
|
|
13
13
|
# scroll, so an answer landing in a thread leaves the reader where they were.
|
|
14
14
|
def easyfaa_head_tags(app = Wordmark.app)
|
|
15
15
|
safe_join [
|
|
@@ -33,12 +33,12 @@ module Wordmark
|
|
|
33
33
|
], INDENT
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
# The house's own two files, for a page that already links bh's. At
|
|
37
|
-
# path
|
|
36
|
+
# The house's own two files, for a page that already links bh's. At the same
|
|
37
|
+
# path in every release, so a browser asks again on a full load and is answered 304.
|
|
38
38
|
def easyfaa_tags
|
|
39
39
|
safe_join [
|
|
40
|
-
tag.link(rel: 'stylesheet', href:
|
|
41
|
-
tag.script('', type: 'module', src:
|
|
40
|
+
tag.link(rel: 'stylesheet', href: '/css/easyfaa.css'),
|
|
41
|
+
tag.script('', type: 'module', src: '/js/easyfaa.js'),
|
|
42
42
|
], INDENT
|
|
43
43
|
end
|
|
44
44
|
|
data/lib/wordmark/marks.rb
CHANGED
|
@@ -4,13 +4,23 @@ module Wordmark
|
|
|
4
4
|
# and reaches IBM Plex Sans's ascender. Every drawing is a different shape inside its 512
|
|
5
5
|
# grid, so equal sizes never align; these do. The house's own is the one exception: 0.8em
|
|
6
6
|
# and dropped 0.16em, so the horizon centres on the lowercase rather than standing on it.
|
|
7
|
+
# A wide, short mark (blackbox, dataplate, wordmark) is held to about 50px, or
|
|
8
|
+
# reaching the ascender would make it twice as wide as its neighbours.
|
|
7
9
|
MARKS = {
|
|
8
|
-
|
|
10
|
+
blackbox: [50.00, 8.40],
|
|
9
11
|
cube: [38.96, 1.72],
|
|
12
|
+
data: [41.71, 3.10],
|
|
13
|
+
dataplate: [50.00, 8.40],
|
|
10
14
|
design: [50.47, 8.94],
|
|
15
|
+
drive: [41.84, 2.45],
|
|
11
16
|
easyfaa: [38.4, 7.68],
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
hangar: [41.71, 3.10],
|
|
18
|
+
lens: [45.02, 4.75],
|
|
19
|
+
mirroring: [38.86, 1.67],
|
|
20
|
+
refinery: [43.30, 3.21],
|
|
21
|
+
rollaway: [40.24, 1.73],
|
|
22
|
+
stockroom: [38.86, 1.67],
|
|
23
|
+
tower: [38.86, 1.67],
|
|
24
|
+
wordmark: [50.00, 12.40],
|
|
15
25
|
}.freeze
|
|
16
26
|
end
|
data/lib/wordmark/version.rb
CHANGED
data/lib/wordmark.rb
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
require 'bh'
|
|
2
|
+
require 'active_support/core_ext/module/attribute_accessors'
|
|
2
3
|
require_relative 'wordmark/version'
|
|
3
4
|
require_relative 'wordmark/marks'
|
|
4
5
|
require_relative 'wordmark/copy'
|
|
5
|
-
require_relative 'wordmark/down'
|
|
6
6
|
require_relative 'wordmark/helpers'
|
|
7
7
|
require_relative 'wordmark/engine'
|
|
8
8
|
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
9
|
+
# easyFAA's front end: the easy design system every app's pages are drawn with (its layout,
|
|
10
|
+
# stylesheets, scripts, fonts, icons and partials), the error pages every app shows, the marks
|
|
11
|
+
# every app is known by, and the helpers that draw them the same way everywhere.
|
|
12
12
|
module Wordmark
|
|
13
|
+
# The site an error page names, in its title, its one link and the maintenance message, as
|
|
14
|
+
# `[name, url]` for the request: an app that is not easyFAA's own names itself,
|
|
15
|
+
# `Wordmark.site = ->(request) { ['easyAnnual', 'https://easyannual.com/'] }`.
|
|
16
|
+
mattr_accessor :site, default: ->(_request) { ['easyFAA', 'https://easyfaa.com/'] }
|
|
17
|
+
|
|
13
18
|
# The form every easyfaa page is written with, which is bh's: the house dresses no
|
|
14
19
|
# field differently, so this name and `Bh::FormBuilder` are one builder.
|
|
15
20
|
FormBuilder = Bh::FormBuilder
|
|
@@ -19,8 +24,8 @@ module Wordmark
|
|
|
19
24
|
Message = Bh::Message
|
|
20
25
|
|
|
21
26
|
# Which of the family this host is, read off the Rails application's own name — the
|
|
22
|
-
# `
|
|
23
|
-
# What a tab wears
|
|
27
|
+
# `Tower` of `Tower::Application` — and the house itself for any app not in `MARKS`.
|
|
28
|
+
# What a tab wears and what a logo says.
|
|
24
29
|
def self.app
|
|
25
30
|
name = Rails.application.class.module_parent_name.downcase.to_sym
|
|
26
31
|
MARKS.key?(name) ? name : :easyfaa
|
data/public/_headers
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# A page on another origin loads the script as a module and the stylesheet's font across
|
|
2
|
-
# origins, both of which the browser refuses without this. Cloudflare
|
|
2
|
+
# origins, both of which the browser refuses without this. Cloudflare adds no CORS.
|
|
3
3
|
/*
|
|
4
4
|
Access-Control-Allow-Origin: *
|
|
5
5
|
|
|
6
6
|
# An unversioned file follows the latest release, so a browser asks for it again on every
|
|
7
|
-
# load and is answered 304 while it stands
|
|
8
|
-
#
|
|
7
|
+
# load and is answered 304 while it stands, so a page drawn against a new bundle never runs
|
|
8
|
+
# the old one.
|
|
9
9
|
/css/*
|
|
10
10
|
Cache-Control: public, max-age=0, must-revalidate
|
|
11
11
|
/js/*
|
|
@@ -17,12 +17,8 @@
|
|
|
17
17
|
/page/*
|
|
18
18
|
Cache-Control: public, max-age=0, must-revalidate
|
|
19
19
|
|
|
20
|
-
# A versioned copy never changes, so a browser may keep it for a year and the edge for good.
|
|
21
|
-
/v*
|
|
22
|
-
Cache-Control: public, max-age=31536000, immutable
|
|
23
|
-
|
|
24
20
|
# A font's name carries a hash of its bytes, so a browser may keep it for good; everything
|
|
25
|
-
# else keeps
|
|
21
|
+
# else keeps Cloudflare's default, which is to revalidate on every load and answer 304 while it
|
|
26
22
|
# stands, so the URL of a file never has to change between versions.
|
|
27
23
|
/font/*
|
|
28
24
|
Cache-Control: public, max-age=31536000, immutable
|