【问题标题】:How do you use the Contentful Middleman preview API in different build environment?如何在不同的构建环境中使用 Contentful Middleman 预览 API?
【发布时间】:2017-07-05 13:50:26
【问题描述】:

这是我试图在原则上实现的目标,这显然是行不通的,因为需要在构建之前检索内容数据:

# Build command
bundle exec middleman contentful && bundle exec middleman build -e <ENV>
# config.rb

configure :prod do
  set :build_dir, 'build/prod'
  set :ENV, 'prod'

  activate :contentful do |f|
    f.space         = { hs: 'SPACE' }
    f.access_token  = 'TOKEN'
    f.cda_query     = { include: 2 }
    f.all_entries   = true
    f.content_types = { #... }
  end
end

configure :testSite do
  set :build_dir, 'build/test-site'
  set :ENV, 'test'

  activate :contentful do |f|
    use_preview_api = true
    #...
  end
end

【问题讨论】:

    标签: ruby middleman contentful


    【解决方案1】:

    你可以使用环境变量来开启它。

    # Build command
    CONTENTFUL_ENV=<env> bundle exec middleman contentful && bundle exec middleman build -e <env>
    
    
    # config.rb
    access_token = nil
    use_preview = false
    case ENV['CONTENTFUL_ENV']
    when 'prod'
      access_token = ENV['CONTENTFUL_PROD_TOKEN']
    when 'testSite'
      access_token = ENV['CONTENTFUL_TEST_TOKEN']
      use_preview = true
    end
    
    activate :contentful do |f|
      f.space = {space_alias: ENV['CONTENTFUL_SPACE']}
      f.use_preview_api = use_preview
      f.access_token = access_token
      # ...
    end
    

    这样你就可以让多个环境一起工作

    【讨论】:

    • 这按说明工作,正是我想要的 - 谢谢。
    • 很高兴这是您要找的东西!干杯
    • @DavidLitvak 所以你在 .htaccess 中设置空间和令牌 ID'?
    • @AndreZimpel 这些是您的开发/生产构建环境中的环境变量。一旦建成即可提供服务,则不需要这样做。如果您使用 CircleCI 或 Netlify 之类的工具进行构建,这些东西可以在其设置中轻松配置。如果您使用的是自己的机器,那么您可以在这里查看如何设置环境变量:cyberciti.biz/faq/set-environment-variable-unix
    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 2016-04-11
    • 2017-03-24
    • 2019-05-24
    • 2017-11-02
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    相关资源
    最近更新 更多