Gatsby's pathPrefix
только добавляет строку к маршрутам вашего проекта (url). Сценарии развертывания должны обрабатывать, где заканчивается папка publi c на вашем сервере. Если вы действительно хотите опубликовать sh свой проект gatsby где-нибудь, кроме /public
(локально), вам, вероятно, потребуется сделать что-то вроде использования fs
и path
в onPostBuild
в gatsby- node.js для перемещения все в другой каталог. На момент написания этой статьи Gatsby напрямую не поддерживает альтернативные каталоги сборки, поэтому вы можете использовать gatsby develop или gatsby serve для просмотра этого локально самостоятельно.
Попробуйте что-то подобное в gatsby- node.js но измените пути, чтобы удовлетворить свои потребности. В этом примере sh ваш проект будет опубликован в /public/blog
, а не в /public
по умолчанию, и это просто подтверждение концепции, но я протестировал его, и он работает:
const path = require('path');
const fs = require('fs');
exports.onPostBuild = function() {
fs.renameSync(path.join(__dirname, 'public'), path.join(__dirname, 'public-blog'));
fs.mkdirSync(path.join(__dirname, 'public'));
fs.renameSync(path.join(__dirname, 'public-blog'), path.join(__dirname, 'public', 'blog'));
};