问题描述
最近几年,我一直在使用Hexo.io生成我的静态网站。 当我运行“ hexo g”时,它将输出一个静态站点,无需服务器即可在本地打开。 这就是我想要11ty做的。
将网站转换为11ty后,当我使用本地开发服务器时,效果很好。 但是,当我打开_site> index.html时,它无法正确呈现。 缺少所有样式,js和图像,因为它们都以“ /”开头。
我觉得我缺少明显的东西。 必须有一种方法可以将11ty设置为输出正常工作的静态站点。
我一直在研究11ty文档并在线查看是否有人遇到此问题。 通常,我看到人们想要部署到子目录或使用Netlify之类的东西。 我宁愿避免这种情况。
我尝试使用URL过滤器,该过滤器使用pathPrefix输出相对路径。 但是似乎没有pathPrefix可以删除“ /”。
任何建议将不胜感激。 谢谢。
解决方法
我不确定是否有简单的方法可以做到;我曾经在Jekyll论坛上问过同样的问题,但没人知道答案。
我认为困难在于文件夹结构,因为foo.com/bar在Eleventy中具有基础结构bar / index.htm(当您想要的离线站点是bar.htm时)。
当我对此进行调查时,Hexo似乎是唯一具有脱机功能的发电机。
,确保您正确配置 11ty。然后还要记住,您需要为资产设置传递副本。
module.exports = function (eleventyConfig) {
// NOTE: unlike in hugo,not the content of the assets folder,but the asset folder itself (with it's subfolders) will be copied...
eleventyConfig.addPassthroughCopy("src/assets/**/!(*.scss)");
eleventyConfig.addLayoutAlias('default','base.njk')
eleventyConfig.setFrontMatterParsingOptions({ excerpt: true,excerpt_separator: '---' });
return {
passthroughFileCopy: true,dataTemplateEngine: 'njk',htmlTemplateEngine: "njk",markdownTemplateEngine: "njk",templateFormats: [
"html","njk","ejs","md"
],dir: {
input: "src",output: "_site",includes: "includes",layouts: "includes/layouts",data: "data",},pathPrefix: "/abc"
};
}