在Express Application中托管Gatsby Blog

时间:2019-05-14 11:26:19

标签: javascript gatsby

这可能是一个愚蠢的问题,如果可以的话,请您道歉。我的网站托管在Heroku(快速应用程序)上。我也有一个用盖茨比创建的博客,我想托管盖茨比@ www.mysite.com/blog,我可以在我的Express应用程序中托管我的盖茨比应用程序吗,如果可以的话,如何从我的Express路线中调用盖茨比。 / p>

谢谢

1 个答案:

答案 0 :(得分:0)

因此,答案实际上非常简单,因为Gatsby只会生成静态HTML,CSS和JS。在我的案例“ / blog”中,可以通过App.js的特定路径来提供这些文件。

关键是在构建应用程序和部署文件之前,请确保在Gatsby中设置了路径前缀。这意味着在构建应用程序时,所有资产都以“ / blog”为前缀,这意味着可以在Express应用程序内的子文件夹中找到这些资产。

App.js

app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/blog', express.static(__dirname + '/blog/public'));
app.use('/users', usersRouter);
app.use('/api/v1/communicate', sendMail);

Gatsy-config.js

module.exports = {
  pathPrefix: '/blog',
  siteMetadata: {
    siteUrl: urljoin(config.siteUrl),
    rssMetadata: {
      site_url: urljoin(config.siteUrl),
      feed_url: urljoin(config.siteUrl, config.pathPrefix, config.siteRss),
      title: config.siteTitle,
      description: config.siteDescription,
      image_url: `${urljoin(
        config.siteUrl,
        config.pathPrefix
      )}/logos/logo-512.png`,
      copyright: config.copyright
    }