Как я могу настроить Eleventy (11ty) для вывода рабочего статического сайта в папку _site?
Последние несколько лет я использую Hexo.io для создания своего статического сайта. Когда я запускаю "hexo g", он выводит статический сайт, который я могу открыть локально без сервера. Это то, что я хочу, чтобы 11ty сделал.
После преобразования моего сайта в 11ty он отлично работает, пока я использую локальный сервер разработки. Но когда я открываю _site > index.html, он не отображается должным образом. Все стили, js и изображения отсутствуют, потому что все они начинаются с символа "/".
Я чувствую, что упускаю что-то очевидное. Должен быть способ установить 11ty для вывода рабочего статического сайта.
Я изучал документацию 11ty и онлайн, чтобы узнать, есть ли у кого-нибудь еще эта проблема. В основном я вижу людей, которые хотят развернуть в подкаталог или использовать что-то вроде Netlify. Я бы предпочел этого избежать.
Я пробовал использовать URL-фильтр, который выводит относительные пути с помощью pathPrefix. Но, похоже, нет pathPrefix, который удаляет "/".
Любые предложения будут ценны. Спасибо.
2 ответа
Я не уверен, что есть простой способ сделать это; Однажды я задал тот же вопрос на форуме Jekyll, и никто не знал ответа.
Я думаю, что трудность заключается в структуре папок, поскольку foo.com/bar имеет базовую структуру bar/index.htm в Eleventy (когда для автономного сайта вам нужен 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"
};
}