代码之家  ›  专栏  ›  技术社区  ›  Mathieu

节点/网页包4-如何使用根域

  •  0
  • Mathieu  · 技术社区  · 6 年前

    我需要在通过javascript注入html的视图中使用页面的根域:

    <meta property="og:url" name="twitter:url" itemprop="url" content="<%- root_domain %><%- local_path %>">
    

    问题是,今天我用“硬编码”的方式来做,因为我总是把它设置为 https://www.example.com 但在我们的幽冥中,根域每造一个都会改变,就像 deploy-preview-118--xyz-434545.netlify.com 一个版本,然后 deploy-preview-119--xyz-434545.netlify.com ,等等。。。

    因此,我不想将根域硬编码设置为https:://www.example.com。

    在一个节点应用程序中,webpack会自我意识到根域吗?有没有一个方法,如果我使用总是给当前的根域?来自Rails生态系统,我们有 root_path 方法,它总是等于根域(这里是 example.com , 部署-预览-118--xyz-434545.netlify.com , 部署-预览-119--xyz-434545.netlify.com ...).

    不确定它在这个问题上起什么作用,但是我们用 https://github.com/markdalgleish/static-site-generator-webpack-plugin 插件,所以我们有一个locals.path方法,但是它提供了根域之后的所有内容,而我们想要的是根域。

    1 回复  |  直到 6 年前
        1
  •  1
  •   lkroneman    6 年前

    基于我们上面的讨论。

    在查看了Netlify的文档之后,他们提供了几个内置的环境变量,其中包括, URL , DEPLOY_URL DEPLOY_PRIME_URL

    参考: netlify-build-environment-variables

    您应该能够在构建中使用这些设置 <%- root_domain %> 变量。

    环境变量可以在 node.js 使用 process.env . 所以在webpack配置中将根url传递给静态站点生成器。

    plugins: [
        new StaticSiteGeneratorPlugin({
          locals: {
            root_domain: process.env.DEPLOY_PRIME_URL || 'https://www.example.com'
          }
        })
    ]
    

    哪里 https://www.example.com 将用于当地开发或在没有环境变量的情况下。