0

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

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

问题是今天我有点用“硬编码”的方式来做,因为我设置它总是等于https://www.example.com但在我们的 Netlify CI 中,根域每次构建都会改变,比如deploy-preview-118--xyz-434545.netlify.com在一个构建上,然后deploy-preview-119--xyz-434545.netlify.com,等等.. .

所以我不想将 root_domain 硬编码为 https:://www.example.com。

在具有 webpack 自我意识根域的节点应用程序中?有没有一种方法可以让我使用总是给出当前的根域?来自 Rails 生态系统,我们的root_path方法总是等于根域(这里是example.com, deploy-preview-118--xyz-434545.netlify.com, deploy-preview-119--xyz-434545.netlify.com...)。

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

4

1 回答 1

1

根据我们上面的讨论。

在查看了 Netlify 的文档后,他们提供了几个内置的环境变量,包括URL、、DEPLOY_URLDEPLOY_PRIME_URL

参考:netlify-build-environment-variables

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

环境变量可以在node.jsusing中访问process.env。因此,在您的 webpack 配置中,会将根 url 传递给静态站点生成器。

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

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

于 2018-07-30T22:46:47.493 回答