将Sails JS拖放到Heroku时未find图像

我开发了一个Sails.js应用程序,它在本地按预期工作。 但是,当我将其部署到生产(Heroku)时,无法find“/ assets / images /”文件夹中的图像(404)。

我知道有一些任务将“/ assets”文件夹中的文件传输到“.tmp / public”文件夹,以便在应用程序被解除时可以访问。 .js和.less文件正在按预期加载,但不是图像。

我怎样才能确保“/ assets / images”文件夹被传输到公共文件夹呢?

我有这个问题。 主要想法是在.tmp中创build一个上传文件夹。 在导致上传的 公共文件夹中创build一个符号链接。 问题在于,每次我们提升应用程序时,Grunt都会重写'.tmp / public'的所有内容。

因此我做了一个适当的Grunt任务,它只是创build符号链接。

  1. sudo npm install grunt-contrib-symlink
  2. 任务/configuration中创buildGrunt任务。 并把它命名为symlink.js

     module.exports = function(grunt) { grunt.config.set('symlink', { dev: { src: '.tmp/uploads/**', dest: '.tmp/public/uploads/' } }); grunt.loadNpmTasks('grunt-contrib-symlink'); }; 
  3. 最后将任务添加到tasks / register / compileAssets.js

     module.exports = function (grunt) { grunt.registerTask('compileAssets', [ 'clean:dev', 'jst:dev', 'less:dev', 'copy:dev', 'coffee:dev', 'symlink:dev' ]); };