Rechtsseiten crawlbar: /datenschutz /agb /impressum als eigenständige HTML-Seiten (einzige Quelle, indexierbar) statt 302→Hash; SPA-Module holen Inhalt per fetch+inject (kein Text-Duplikat); Kontaktformular in geteilte contact-form.js; Sitemap+SW ergänzt, v1278
This commit is contained in:
parent
43b6292d08
commit
40d117874b
13 changed files with 1047 additions and 782 deletions
|
|
@ -670,6 +670,9 @@ async def sitemap():
|
|||
("https://banyaro.app/help", "monthly", "0.7"),
|
||||
("https://banyaro.app/knigge", "monthly", "0.7"),
|
||||
("https://banyaro.app/partner", "monthly", "0.6"),
|
||||
("https://banyaro.app/datenschutz", "yearly", "0.3"),
|
||||
("https://banyaro.app/agb", "yearly", "0.3"),
|
||||
("https://banyaro.app/impressum", "yearly", "0.3"),
|
||||
]
|
||||
|
||||
try:
|
||||
|
|
@ -2685,15 +2688,17 @@ async def wurfboerse_page():
|
|||
|
||||
|
||||
# Rechtsseiten: Pfad-URLs (SEO-Footer, App-Store-Metadaten, E-Mails) auf die
|
||||
# SPA-Hash-Routen umleiten — die Inhalte leben als SPA-Seiten (#agb, …).
|
||||
# Rechtsseiten als eigenständige, crawlbare HTML-Seiten ausliefern (einzige Inhaltsquelle).
|
||||
# Die SPA-Module (#agb, #datenschutz, #impressum) holen denselben Inhalt per fetch und
|
||||
# injizieren ihn — so bleibt die In-App-Ansicht erhalten, ohne Text-Duplikat.
|
||||
# Muss VOR dem SPA-Fallback registriert sein.
|
||||
@app.get("/agb")
|
||||
@app.get("/datenschutz")
|
||||
@app.get("/impressum")
|
||||
async def legal_page_redirect(request: _Request):
|
||||
from fastapi.responses import RedirectResponse
|
||||
async def legal_page(request: _Request):
|
||||
page = request.url.path.strip("/")
|
||||
return RedirectResponse(f"/#{page}", status_code=302)
|
||||
return FileResponse(f"{STATIC_DIR}/{page}.html",
|
||||
headers={"Cache-Control": "max-age=3600"})
|
||||
|
||||
|
||||
# SPA Fallback — ALLE nicht-API-Routen gehen zur index.html
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue