【发布时间】:2022-10-08 18:06:49
【问题描述】:
我最近在玩新的 deno 框架,一切都很棒,但在某个时候,我意识到不可能将任何额外的元数据添加到页面标题标签。基本上我想做两件事:
- 添加标题标签
- 从我的静态目录链接一些 css 文件
您知道如何实现这一目标吗? 在理想的世界中,我希望能够提供我自己的 html 模板,或者至少有一些灵活的方式来操作提供的固定模板。 我确实在 Fresh 源文件中找到了一些代码 sn-p,它基本上是前面提到的固定 html 模板,但不幸的是它看起来对我来说不是可定制的 - 只有可变元素是opts.headComponents,但我不确定我是否可以影响它。
export interface TemplateOptions { bodyHtml: string; headComponents: ComponentChildren[]; imports: (readonly [string, string])[]; styles: string[]; preloads: string[]; lang: string; } export function template(opts: TemplateOptions): string { const page = ( <html lang={opts.lang}> <head> <meta charSet="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> {opts.preloads.map((src) => <link rel="modulepreload" href={src} />)} {opts.imports.map(([src, nonce]) => ( <script src={src} nonce={nonce} type="module"></script> ))} <style id="__FRSH_STYLE" dangerouslySetInnerHTML={{ __html: opts.styles.join("\n") }} /> {opts.headComponents} </head> <body dangerouslySetInnerHTML={{ __html: opts.bodyHtml }} /> </html> ); return "<!DOCTYPE html>" + renderToString(page); }
【问题讨论】:
标签: javascript deno preact freshjs