我只是想在我的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)
我错过了什么吗?
答案 0 :(得分:14)
Sails使用Grunt(项目根目录中的Gruntfile.js)在风帆升降期间执行某些任务。其中一项任务是将文件从assets目录复制到.tmp / public /目录(在开发版本中)。因此,如果您将文件添加到assets目录,则需要重新启动sails(sails lift)以从.tmp / public /(什么是公共可访问目录root)访问它。另外需要注意的是,如果你把文件直接放到.tmp / public /它会立即访问,但是在下一个风帆上它会被删除,因为Grunt任务之一是在复制新文件之前清除该目录。所有这些你都可以在sails文档(assets和asset-management)上找到并通过阅读项目根目录中的Gruntfile.js
答案 1 :(得分:8)
答案 2 :(得分:3)
看起来你已删除了grunt
个钩子。
删除grunt挂钩时,您还必须在.sailsrc
中指定以下内容,以便为您的资产提供服务,否则所有资源都将返回 404 。
{
"paths": {
"public": "assets"
}
}
答案 3 :(得分:0)
我也遇到了同样的问题
在风帆版本0.12.0,
我试图将资源文件夹中的图像显示到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">
这也必须适合你。
答案 4 :(得分:0)
如果您的项目中有 tasks / sync.js 文件,请在files
数组中添加以下对象:
{
cwd: './assets/images',
src: ['**/*.*'],
dest: '.tmp/public/images'
}
您需要安装sails-hook-grunt和grunt-sync。