当前位置: 首页 > 知识库问答 >
问题:

如何使用require将域从环境变量注入vuejs

和飞翔
2023-03-14

我有一个特殊的用例,需要在html端呈现图像的完整url。前任;Facebook Open Graph需要完整图像url才能正常工作,相对图像或绝对路径无法正常工作。

我目前正在使用@vue/cli和typescript。我有以下组成部分:

example.vue

<template>
  <div id="example">
    <img :src="exampleIcon" alt="Example"/>
  </div>
</template>

<script lang="ts">
  export default {
    data() {
      return {
        exampleIcon: require(`../assets/exampleIcon.png`),
      };
    },
  };
</script>

上面的渲染很好,它会生成一个img标记,结果如下:

<img src="/img/exampleIcon.8d0b1a90.png" alt="Example">

但假设我的领域是示例。com,以下是我想要的结果:

<img src="https://example.com/img/exampleIcon.8d0b1a90.png" alt="Example">

我不想在模板中硬编码任何东西。我想使用一个环境变量,这样我就可以在构建vue包时注入域:

export default {
    data() {
      return {
        baseUrl: process.env.BASE_URL,
      };
    },
  };

一些相关留档:

  • vue加载程序资源url

共有1个答案

梁浩涆
2023-03-14

你很接近。

不要从环境变量中获取baseUrl的值,而是根据构建当前应用程序的环境设置该值:

data() {
  return {
    baseUrl: process.env.NODE_ENV == 'production'? "https://example.com" : 'http://localhost:8081'
  }

我猜对于生产环境和开发环境,您有不同的npm脚本。在webpack 4中,您可以使用使用模式。

了解更多有关环境的信息。

 类似资料:
  • 问题内容: 在詹金斯(Jenkins)的工作中,我正在执行预构建中的一些操作,例如执行Shell脚本。通过使用Jenkins插件“ EnvInject”,我想将环境变量注入到我的Maven构建(单元测试)中,以便可以在Java单元测试中使用这些变量。在shell脚本中,即时消息执行类似以下操作: 在构建Jenkins时,输出以下内容: 但是“ ip”变量在我的Java代码(单元测试)中不可用。当我

  • 在Jenkins的工作中,我正在执行驻留在预步骤构建中的几个操作,例如执行外壳脚本。使用Jenkins插件EnvInject,我想将环境变量注入到我的maven构建(单元测试)中,以便在我的Java单元测试中使用。在外壳脚本IM做类似的事情: 在构建Jenkins时,输出以下内容: 但是“ip”变量在我的Java代码(单元测试)中不可用。当我完整打印两个我没有看到登记的“ip”。 我是否需要为ma

  • 问题内容: [免责声明:可能会有更多pythonic方法来做我想做的事,但我想知道python的作用域在这里是如何工作的] 我试图找到一种方法来制作装饰器,该装饰器的作用类似于将名称注入另一个函数的作用域(以使名称不会泄漏到装饰器作用域之外)。例如,如果我有一个函数说要打印一个尚未定义的名为的变量,我想在调用它的装饰器中定义它。这是一个中断的示例: 我希望它打印“ ”,但它给出: 追溯甚至指向wh

  • 问题内容: 如何使用变量配置Web服务器(Linux服务器)? 如何设置使用? 问题答案: 是一些服务器和其他Java应用程序附加到执行命令的调用的标准环境变量。 例如在tomcat中,如果您定义,启动脚本将执行 如果您在Linux / OSX上运行,则可以在调用启动脚本之前通过执行以下操作来设置JAVA_OPTS: 只要打开控制台,此操作将一直持续。要使其更永久,可以将其添加到〜/ .profi

  • 问题内容: 设置环境变量后,AWS 在http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Java.managing.html中讨论 。一切都很好,除了我不能在我的Spring XML配置代码中调用,也不能调用资源束快捷方式,因为资源束本身必须以某种方式提取这些环境变量来为它们服务。您能帮我将这个示例配置转换为使用

  • 问题内容: 如何从Java设置环境变量?我看到我可以使用来对子流程执行此操作ProcessBuilder。不过,我有几个子流程要启动,所以我宁愿修改当前流程的环境,并让这些子流程继承它。 有一个获取单个环境变量的方法。我还可以使用获取Map完整的环境变量集。但是,调用put()该方法Map将引发-显然,这意味着该环境是只读的。而且,没有。 那么,有什么方法可以在当前运行的进程中设置环境变量?如果是