Skip to content

Créer un point d'entrée static

@duplojs/http/static permet d'exposer un fichier ou un dossier en lecture seule. Vous pouvez soit brancher directement le staticPlugin dans le Hub, soit enregistrer une route manuellement avec makeRouteFile ou makeRouteFolder.

Avec staticPlugin

ts
import { 
createHub
} from "@duplojs/http";
import {
SF
} from "@duplojs/server-utils";
import {
staticPlugin
} from "@duplojs/http/static";
const
logoFile
=
SF
.
createFileInterface
("./public/logo.svg");
const
assetsFolder
=
SF
.
createFolderInterface
("./public");
export const
hub
=
createHub
({
environment
: "DEV" })
.
plug
(
staticPlugin
(
logoFile
, {
path
: "/logo",
cacheControlConfig
: {
maxAge
: 3600,
public
: true,
}, }), ) .
plug
(
staticPlugin
(
assetsFolder
, {
prefix
: "/assets",
}), );

Le plugin choisit automatiquement le bon comportement selon la source passée.

  • source est un FileInterface ou un FolderInterface.
  • path expose un fichier unique sur une route précise.
  • prefix expose tout un dossier sous un préfixe d'URL.
  • cacheControlConfig permet d'ajouter les entêtes cache-control.
  • directoryFallBackFile permet de servir un fichier par défaut pour un dossier, par exemple index.html.

Avec makeRouteFile

ts
import { 
createHub
} from "@duplojs/http";
import {
SF
} from "@duplojs/server-utils";
import {
makeRouteFile
} from "@duplojs/http/static";
const
faviconRoute
=
makeRouteFile
({
source
:
SF
.
createFileInterface
("./public/favicon.ico"),
path
: "/favicon.ico",
cacheControlConfig
: {
maxAge
: 86400,
public
: true,
}, }); export const
hub
=
createHub
({
environment
: "DEV" })
.
register
(
faviconRoute
);

Utilisez cette fonction quand vous voulez enregistrer vous-même une route static pour un seul fichier.

  • source désigne le fichier à servir.
  • path est la route HTTP à exposer.
  • cacheControlConfig est optionnel.

Avec makeRouteFolder

ts
import { 
createHub
} from "@duplojs/http";
import {
SF
} from "@duplojs/server-utils";
import {
makeRouteFolder
} from "@duplojs/http/static";
const
docsRoute
=
makeRouteFolder
({
source
:
SF
.
createFolderInterface
("./public/docs"),
prefix
: "/docs",
directoryFallBackFile
: "index.html",
cacheControlConfig
: {
maxAge
: 600,
public
: true,
}, }); export const
hub
=
createHub
({
environment
: "DEV" })
.
register
(
docsRoute
);

Cette version sert tous les fichiers d'un dossier à partir d'un préfixe commun.

  • source désigne le dossier racine.
  • prefix est le préfixe d'URL utilisé pour résoudre les fichiers.
  • directoryFallBackFile permet de servir un fichier par défaut pour un dossier, par exemple index.html.
  • cacheControlConfig est optionnel.

Diffusé sous licence MIT.