- Success Stories: full migration from old site (48/48, audited), markets n:n, quotation content block, columns content block, pretty SEO detail URLs via SuccessStoryPathRewrite middleware, list/detail split (list page 4 / story page), detailUrl/backUrl - New plugins: VITEC Locations (grid/list/map + RTE map text), VITEC Customer Logos (color/bw logic, only-show-selected), VITEC Card (one plugin for product/story/market/solution with reloading FlexForm + custom backend preview renderer) - Eventlist: layout dropdown (list/grid/teaserbar) in settings - Hero section CB: Images/Video tabs, background video + overlay - Product JSON: full category rootline (parents), fixed missing ConnectionPool import (all-products crash), category tree map - Backend preview CSS: container-query responsive (narrow columns) - Docs: ISO architecture spec, root + extension READMEs Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
28 lines
1.0 KiB
ApacheConf
28 lines
1.0 KiB
ApacheConf
RewriteEngine On
|
|
RewriteBase /_frontend/
|
|
|
|
RewriteRule ^index\.html$ - [L]
|
|
|
|
RewriteCond %{REQUEST_FILENAME} -f [OR]
|
|
RewriteCond %{REQUEST_FILENAME} -d
|
|
RewriteRule ^ - [L]
|
|
|
|
RewriteRule ^ index.html [L]
|
|
|
|
# ── Cache headers ────────────────────────────────────────────────────────────
|
|
|
|
# index.html: never cache — always fetch fresh so the browser picks up
|
|
# the latest hashed JS/CSS filenames after a deploy.
|
|
<Files "index.html">
|
|
Header set Cache-Control "no-store, no-cache, must-revalidate"
|
|
Header set Pragma "no-cache"
|
|
Header set Expires "0"
|
|
</Files>
|
|
|
|
# Hashed assets (JS, CSS, fonts, images inside /assets/):
|
|
# Vite appends a content hash to every filename, so these are immutable.
|
|
# Cache them for 1 year — a new deploy produces new filenames automatically.
|
|
<FilesMatch "\.(js|css|woff2?|ttf|eot|otf)$">
|
|
Header set Cache-Control "public, max-age=31536000, immutable"
|
|
</FilesMatch>
|