8

我只是想在 Sails-Project 的视图中添加图像

我的视图文件有位置

views/album/albums.ejs

并且图像位于

assets/images/placeholder.png

如果我像这样添加图像

<img src="../../assets/images/placeholder.png">

我收到这个错误

GET    http://localhost:1337/assets/images/placeholder.png    404 (Not Found)

我错过了什么吗?

4

5 回答 5

15

Sails 使用 Grunt(项目根目录中的 Gruntfile.js)在升帆期间执行一些任务。其中一项任务是将文件从 assets 目录复制到 .tmp/public/ 目录(在开发版本中)。因此,如果您将文件添加到 assets 目录,您将需要重新启动sails(sails lift)才能从 .tmp/public/ (公共可访问目录根目录)访问它。同样重要的是要注意,如果您将文件直接放入 .tmp/public/ ,它将可以立即访问,但在下一次航行时它将被删除,因为 Grunt 的任务之一是在复制新文件之前清除该目录。所有这些你都可以在sails文档(资产资产管理)上找到,并通过阅读项目根目录中的Gruntfile.js

于 2013-09-14T07:55:49.673 回答
8
<img src="/images/placeholder.png">

应该管用。assets文件夹相当于在express中添加一个带有静态中间件的文件夹。

资产文件

于 2013-09-13T12:30:16.300 回答
3

看起来你已经grunt移除了钩子。

删除 grunt 钩子时,您还必须指定以下内容.sailsrc才能为您的资产提供服务,否则所有资产都将返回404

{
  "paths": {
    "public": "assets"
  }
}
于 2017-05-16T17:21:41.143 回答
0

我也面临同样的问题。
在sails 0.12.0 版中,
我试图将图片从assets 文件夹显示到homepage.ejs。
然后通过使用下面的 img 标签,它解决了我的问题。

<img src="/images/placeholder.png" width="30px" height="30px">

但是由于您的 ejs 文件位于 views/album/albums.ejs

我可能会建议,下面可能会工作

<img src="../images/placeholder.png" width="30px" height="30px">

但是在sails ejs 页面中正确的方法是,

<img src="/images/placeholder.png" width="30px" height="30px">

这也必须为你工作。

于 2017-12-21T09:04:38.213 回答
0

如果您的项目中有tasks/sync.js文件,请在files数组中添加以下对象:

{
        cwd: './assets/images',
        src: ['**/*.*'],
        dest: '.tmp/public/images'
}

你需要安装sails-hook-grunt 和grunt-sync。

于 2019-05-22T19:35:51.757 回答