如何设置Eleventy(11ty)以将工作静态站点输出到_site文件夹?

如何设置Eleventy(11ty)以将工作静态站点输出到_site文件夹?,eleventy,Eleventy,在过去的几年里,我一直在使用Hexo.io生成我的静态站点。 当我运行“hexog”时,它会输出一个静态站点,我可以在没有服务器的情况下在本地打开它。 这就是我想要的 在将我的站点转换为11ty之后,当我使用本地开发服务器时,它工作得非常好。 但是当我打开_site>index.html时,它无法正确呈现。 缺少所有样式、js和图像,因为它们都以“/”开头 我觉得我错过了一些明显的东西。 必须有一种方法设置11ty以输出工作静态站点 我一直在研究11ty文档和在线,看看是否还有其他人有这个问题。

在过去的几年里,我一直在使用Hexo.io生成我的静态站点。 当我运行“hexog”时,它会输出一个静态站点,我可以在没有服务器的情况下在本地打开它。 这就是我想要的

在将我的站点转换为11ty之后,当我使用本地开发服务器时,它工作得非常好。 但是当我打开_site>index.html时,它无法正确呈现。 缺少所有样式、js和图像,因为它们都以“/”开头

我觉得我错过了一些明显的东西。 必须有一种方法设置11ty以输出工作静态站点

我一直在研究11ty文档和在线,看看是否还有其他人有这个问题。 大多数情况下,我看到人们希望部署到子目录或使用Netlify之类的东西。 我宁愿避免那样

我尝试过使用URL过滤器,该过滤器使用pathPrefix输出相对路径。 但似乎没有删除“/”的路径前缀

如有任何建议,将不胜感激。
谢谢。

我不确定有没有简单的方法;我曾经在一个杰基尔论坛上问过同样的问题,但没有人知道答案

我认为难点在于文件夹结构,因为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"
    };

}

非常感谢。我确实计划将网站上传到Github页面。但是,我希望将源文件和生产静态文件分开。这就是我使用Hexo的方式。请检查任何现有的eleventy模板,因为它可以工作。至于设置,有一种简单的方法来配置目录。有了11ty,你就有可能对一切都进行微调,但这会耗费你的时间。如果您不关心HEXO强加给您的目录和本地资产文件夹结构,那么我会选择HEXO。雨果也很棒,如果你选择一个现有的主题…没有问题。我没有意识到我可以上传网站文件夹的内容而不需要修改。一切正常。