关于javascript:将Sails JS部署到Heroku时找不到图像

Images not found when deploying Sails JS to Heroku

我已经开发了一个Sails.js应用程序,该应用程序可以在本地正常工作。但是,当我将其部署到生产环境(Heroku)时,找不到" / assets / images /"文件夹中的图像(404)。

我知道有一些任务可以将" / assets"文件夹中的文件传输到" .tmp / public"文件夹中,以便在取消应用程序时可以访问这些文件。 .js和.less文件将按预期加载,但不会加载图像。

如何确保" / assets / images"文件夹也已转移到公共文件夹?


我遇到了这个问题。
主要思想是在.tmp中创建一个上载文件夹。
并在公共文件夹中建立一个符号链接,以进行上传。
问题在于,每次我们提升应用程序时,Grunt都会重写\\'。tmp / public \\'的所有内容。

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

  • sudo npm install grunt-contrib-symlink
  • 在task / config中创建Grunt任务。并将其命名为symlink.js。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    module.exports = function(grunt) {

      grunt.config.set('symlink', {
          dev: {

                  src: '.tmp/uploads/**',
                  dest: '.tmp/public/uploads/'

          }
      });

       grunt.loadNpmTasks('grunt-contrib-symlink');
    };

  • 最后将任务添加到task / register / compileAssets.js。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    module.exports = function (grunt) {
        grunt.registerTask('compileAssets', [
            'clean:dev',
            'jst:dev',
            'less:dev',
            'copy:dev',
            'coffee:dev',
            'symlink:dev'
        ]);
    };