使用Oak,无需扩展即可提供HTML?

问题描述 投票:0回答:1

使用

Oak
,如何在没有扩展名的情况下提供 HTML?例如
host:port/home.html
->
host:port/home

这是我当前渲染

public/views
文件夹的代码:

router.get('/:page', async (ctx: Context, next: () => Promise<unknown>) => {
    await send(ctx, ctx.request.url.pathname, {
        root: join(Deno.cwd(), 'public', 'views'),
        extensions: ['htm', 'html']
    });

    await next();
});

extensions
选项不起作用,或者也许我只是使用了错误的方式。

编辑

我的修复当前正在删除

.html
扩展(例如
home.html
->
home
)。肯定有比这更好的方法

javascript url-rewriting deno oak
1个回答
1
投票

您可以使用它来发送文件:

router.get('/path', async (ctx:any) => {
    const text = await Deno.readTextFile('./file.html');
    ctx.response.headers.set("Content-Type", "text/html")
    ctx.response.body = text;
});
© www.soinside.com 2019 - 2024. All rights reserved.