diff --git a/public-root/README.md b/public-root/README.md new file mode 100644 index 0000000..e7c5420 --- /dev/null +++ b/public-root/README.md @@ -0,0 +1,11 @@ +# Fichiers servis à la racine du domaine + +Le contenu de ce dossier est exposé publiquement, sans authentification, à la +racine du domaine (`https:///`). + +Il sert aux fichiers de vérification de propriété du domaine réclamés par les +plateformes : TikTok (`tiktok.txt`, requis par « URL properties » avant de +pouvoir utiliser la Content Posting API), Google Search Console, Meta, etc. + +Pour en ajouter un, il suffit de déposer le fichier ici — aucune modification de +code n'est nécessaire, et le fichier est servi sans reconstruire le frontend. diff --git a/public-root/tiktokHjd5evuj6TppdUaAJmwmDg34f1fs0qMs.txt b/public-root/tiktokHjd5evuj6TppdUaAJmwmDg34f1fs0qMs.txt new file mode 100644 index 0000000..d2c9262 --- /dev/null +++ b/public-root/tiktokHjd5evuj6TppdUaAJmwmDg34f1fs0qMs.txt @@ -0,0 +1 @@ +tiktok-developers-site-verification=Hjd5evuj6TppdUaAJmwmDg34f1fs0qMs \ No newline at end of file diff --git a/server/routes.ts b/server/routes.ts index 97804f0..dabb47e 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -1,7 +1,8 @@ -import type { Express, Request, Response, NextFunction } from "express"; +import express, { type Express, type Request, type Response, type NextFunction } from "express"; import { createServer, type Server } from "http"; import fs from "fs"; import os from "os"; +import path from "path"; import { storage } from "./storage"; import { db, pool } from "./db"; import multer from "multer"; @@ -460,6 +461,15 @@ export async function registerRoutes(app: Express): Promise { // Analytics Routes app.use("/api/analytics", requireAuth, analyticsRouter); + // Fichiers servis à la racine du domaine, sans authentification : vérification + // de propriété du domaine par TikTok ("URL properties"), Google, Meta… + // Monté ici pour être servi avant le catch-all du frontend, et sans dépendre + // d'une reconstruction du client. + app.use(express.static(path.resolve(import.meta.dirname, "..", "public-root"), { + dotfiles: "ignore", + index: false, + })); + // Pages légales publiques (exigées par TikTok pour l'audit de l'application) app.use(legalRouter);