我需要在通过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方法,但它给了我们根域之后的一切,而我们想要的是根域。
基于我们上面的讨论。
在查看了Netlify的文档后,他们提供了几个内置的环境变量,包括URL
、DEPLOY_URL
和DEPLOY_PRIME_URL
参考:netlify构建环境变量
您应该能够在构建中使用这些来设置<%- root_domain %>
变量。
可以使用process.env
在node.js
中访问环境变量。因此,在您的webpack配置中,会将根url传递给静态站点生成器。
plugins: [
new StaticSiteGeneratorPlugin({
locals: {
root_domain: process.env.DEPLOY_PRIME_URL || 'https://www.example.com'
}
})
]
其中CCD_ 14将用于局部开发或在没有环境变量的情况下。