Angular + node.js,设置图片静态路径(相对路径)

时间:2018-09-05 08:54:55

标签: node.js angular mongodb

我想使用app.js中的node.js设置静态路径。

关于public文件夹中的设置的以下信息:

app.use(express.static(path.join(__dirname, 'public')));

当我使用模板引擎,例如mustache https://mustache.github.io/时, 您可以在模板中使用相对路径进行设置,以获取照片a.jpg,例如:

<img src="./a.jpg">

当我将用户的照片保存在public文件夹中时。

在Angular中,如何从node.js服务器文件夹设置img url相对路径。

如果我将完整的URL保存在DB中,并在img中设置URL:

    http://120.8.12.8:3000/a.jpg
    //or
    http://domainname:3000/a.jpg

html:

<img src="http://120.8.12.8:3000/a.jpg">
<img src="http://domainname:3000/a.jpg">

当我更改IP或域名时,URL将失败。 我该如何设置?

1 个答案:

答案 0 :(得分:0)

我不会将完整路径保存在数据库中。 否则,我将保存有关如何生成路径的信息。 您可以在数据库中有2个字段,例如:

{
"relativePath" : "a.jpg",
"server" : "http://120.8.12.8:3000"
}

在此之后,并假设您正在消耗角度资源,则有几种选择:

  1. 您可以在前端直接混合relativePath和服务器,并创建要放置在链接中的URL
  2. 您可以在角度应用程序中对“服务器”进行硬编码,然后将其与relativePath混合使用。在这种情况下,如果您要迁移图像,则只需修改前端
  3. (最适合我)。在服务器中创建一个端点,该端点为您提供图像服务器的主机,从您的角度应用程序调用它,然后使用此响应和相对图像路径创建完整链接。