Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点/网页包4-如何使用根域_Javascript_Node.js_Webpack_Netlify - Fatal编程技术网

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

Javascript 节点/网页包4-如何使用根域,javascript,node.js,webpack,netlify,Javascript,Node.js,Webpack,Netlify,我需要在通过javascript注入html的视图中使用页面的根域: <meta property="og:url" name="twitter:url" itemprop="url" content="<%- root_domain %><%- local_path %>"> 问题是,今天我用硬编码的方式来做,因为我总是将它设置为https://www.example.com 但在我们的Netlify CI中,根域在每个构建中都会发生更改,比如在一个构建中

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

<meta property="og:url" name="twitter:url" itemprop="url" content="<%- root_domain %><%- local_path %>">
问题是,今天我用硬编码的方式来做,因为我总是将它设置为https://www.example.com 但在我们的Netlify CI中,根域在每个构建中都会发生更改,比如在一个构建中部署-preview-118-xyz-434545.Netlify.com,然后部署-preview-119-xyz-434545.Netlify.com,等等

因此,我不想将root_域硬编码为https:://www.example.com

在一个节点应用程序中,webpack自动识别根域?是否有一种方法,如果我使用它,它总是给出当前的根域?来自Rails生态系统,我们有根路径方法,它始终等于根域,这里是example.com、deploy-preview-118-xyz-434545.netlify.com、deploy-preview-119-xyz-434545.netlify.com


不确定它在这个问题上起了什么作用,但我们使用了plugin,所以我们有一个locals.path方法,但它提供了根域之后的所有内容,而我们想要的是根域。

基于我们上面的讨论

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

参考:

您应该能够在构建中使用这些设置变量

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

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

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

如果您完全删除并仅使用,或者在此上下文中不支持相对URL,会怎么样?不起作用。如果我只留下content=,我将查看主页content=,以及example.com/es/foo content=/es/foo页面。这在使用href属性的元上运行良好,但在使用content属性的元上,您需要一个绝对路径=您必须拥有整个url。因此,我需要注入根域。另外,我确信在其他情况下,我将需要能够访问根域:然后,我能想到的唯一其他选项是在管道中使用deploy url变量,并从webpack配置中读取它。看见URL、DEPLOY\u URL或DEPLOY\u PRIME\u URLnice在netlify上错过了这些方法,谢谢