Files
our_recipe_atlas/src/plugins/static.js
T
2026-08-13 18:36:31 +09:00

31 lines
1.0 KiB
JavaScript

import path from 'node:path';
import { fileURLToPath } from 'node:url';
import fastifyStatic from '@fastify/static';
import fastifyPlugin from 'fastify-plugin';
const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../..');
const publicRoot = path.join(projectRoot, 'public');
async function staticPlugin(fastify, { config }) {
await fastify.register(fastifyStatic, {
root: config.imageRoot,
prefix: '/media/',
});
await fastify.register(fastifyStatic, {
root: publicRoot,
prefix: '/',
decorateReply: false,
});
fastify.get('/login', async (_request, reply) => reply.sendFile('login.html', publicRoot));
fastify.get('/', { preHandler: fastify.authenticatePage }, async (_request, reply) => (
reply.sendFile('index.html', publicRoot)
));
fastify.get('/recipe/:id', { preHandler: fastify.authenticatePage }, async (_request, reply) => (
reply.sendFile('recipe.html', publicRoot)
));
}
export default fastifyPlugin(staticPlugin, { name: 'static-pages' });