#gatsby #netlify #ghost-blog
#gatsby #netlify #призрак-блог
Вопрос:
Я использую Ghost с gatsby-starter-ghost и сталкиваюсь с проблемой с сгенерированным sitemap.xml из gatsby-plugin-advanced-sitemap, а также URL-адрес RSS-канала.
Мое доменное имя https://www.officehomelife.com / и размещается на https://officehomelife.netlify.app /
Проблема в том https://www.officehomelife.com/sitemap.xml генерирует URL-адреса на основе доменного имени netlify, а не моего доменного имени. Он также использует доменное имя netlify для RSS-канала https://feedly.com/i/subscription/feed/https://officehomelife.netlify.app/rss /
Я считаю, что это значение должно поступать из gatsby-starter-ghostsrcutilssiteConfig.js где я это определил:
siteUrl: `https://www.officehomelife.com`, // Site domain. Do not include a trailing slash!
postsPerPage: 12, // Number of posts shown on paginated pages (changes this requires sometimes to delete the cache)
siteTitleMeta: `Office Home Life`, // This allows an alternative site title for meta data for pages.
siteDescriptionMeta: `The essential guide to working from home`, // This allows an alternative site description for meta data for pages.
shareImageWidth: 1000, // Change to the width of your default share image
shareImageHeight: 523, // Change to the height of your default share image
shortTitle: `Office`, // Used for App manifest e.g. Mobile Home Screen
siteIcon: `favicon.png`, // Logo in /static dir used for SEO, RSS, and App manifest
backgroundColor: `#e9e9e9`, // Used for Offline Manifest
themeColor: `#15171A`, // Used for Offline Manifest
}
Я попытался удалить папку .cache, но это не помогло, есть другие идеи?
Спасибо
Комментарии:
1. Можете ли вы предоставить конфигурацию для
gatsby-plugin-advanced-sitemap
?2. Я добавил полную конфигурацию сайта, которую использует плагин sitemap.
3. Я заметил, что у меня нет этой проблемы в моей локальной сборке Gatsby, так что это как-то связано с Netlify. Я попытался добавить переменную среды SITEURL officehomelife.com Я спрошу на их форумах. Код плагина sitemap содержит siteMetadata: { siteUrl:
process.env.SITEURL || config.siteUrl
, },
Ответ №1:
Работа с переменными среды это немного сложно, вам нужно добавить к переменным префикс GATSBY_
, чтобы сделать их доступными для сервера (Netlify) на стороне браузера:
В дополнение к этим переменным среды проекта, определенным в
.env.*
файлах, вы также можете определить переменные среды ОС. Переменные OS Env с префиксом withGATSBY_
станут доступны в JavaScript браузера.
Итак, ваш process.env.SITEURL
должен стать:
siteMetadata: { siteUrl: process.env.GATSBY_SITEURL || config.siteUrl, }
И так далее для остальных переменных среды.