968e470684
This instruct browsers to never cache content directly generated by the controllers. This includes HTML pages, JSON responses, PDF files, etc. This is because Some mobile browsers have a behaviour where, although they will delete the session cookie when the browser shutdowns, they will still serve a cached version of the page on relaunch. The CSRF token in the HTML is then mismatched with the CSRF token in the session cookie (because the session cookie has been cleared). This causes form submissions to fail with an "ActionController::InvalidAuthenticityToken" exception. To prevent this, tell browsers to never cache the HTML of a page. (This doesn’t affect assets files, which are still sent with the proper cache headers). See https://github.com/rails/rails/issues/21948
67 lines
2.8 KiB
Ruby
67 lines
2.8 KiB
Ruby
require File.expand_path('boot', __dir__)
|
||
|
||
require 'rails/all'
|
||
|
||
# Require the gems listed in Gemfile, including any gems
|
||
# you've limited to :test, :development, or :production.
|
||
Bundler.require(*Rails.groups)
|
||
|
||
Dotenv::Railtie.load
|
||
|
||
module TPS
|
||
class Application < Rails::Application
|
||
# Settings in config/environments/* take precedence over those specified here.
|
||
# Application configuration should go into files in config/initializers
|
||
# -- all .rb files in that directory are automatically loaded.
|
||
|
||
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
||
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
||
config.time_zone = 'Paris'
|
||
|
||
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
||
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
||
config.i18n.default_locale = :fr
|
||
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
|
||
config.i18n.available_locales = [:fr]
|
||
|
||
config.paths.add "#{config.root}/lib", eager_load: true
|
||
config.paths.add "#{config.root}/app/controllers/concerns", eager_load: true
|
||
|
||
config.assets.paths << Rails.root.join('app', 'assets', 'javascript')
|
||
config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
|
||
config.assets.precompile += ['.woff']
|
||
|
||
config.active_job.queue_adapter = :delayed_job
|
||
|
||
config.action_view.sanitized_allowed_tags = ActionView::Base.sanitized_allowed_tags + ['u']
|
||
|
||
# Some mobile browsers have a behaviour where, although they will delete the session
|
||
# cookie when the browser shutdowns, they will still serve a cached version
|
||
# of the page on relaunch.
|
||
# The CSRF token in the HTML is then mismatched with the CSRF token in the session cookie
|
||
# (because the session cookie has been cleared). This causes form submissions to fail with
|
||
# a "ActionController::InvalidAuthenticityToken" exception.
|
||
# To prevent this, tell browsers to never cache the HTML of a page.
|
||
# (This doesn’t affect assets files, which are still sent with the proper cache headers).
|
||
#
|
||
# See https://github.com/rails/rails/issues/21948
|
||
config.action_dispatch.default_headers['Cache-Control'] = 'no-store, no-cache'
|
||
|
||
config.to_prepare do
|
||
# Make main application helpers available in administrate
|
||
Administrate::ApplicationController.helper(TPS::Application.helpers)
|
||
end
|
||
|
||
config.middleware.use Rack::Attack
|
||
config.middleware.use Flipper::Middleware::Memoizer, preload_all: true
|
||
|
||
config.ds_weekly_overview = ENV['APP_NAME'] == 'tps'
|
||
|
||
config.ds_autosave = {
|
||
debounce_delay: 3000,
|
||
status_visible_duration: 6000
|
||
}
|
||
|
||
config.skylight.probes += [:graphql]
|
||
end
|
||
end
|