将 Sails JS 部署到 Heroku 时找不到映像

Images not found when deploying Sails JS to Heroku

本文关键字:找不到 映像 Heroku Sails JS 部署      更新时间:2023-09-26

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

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

如何确保"/assets/images"文件夹也传输到公用文件夹?

我遇到了这个问题。主要思想是在.tmp中创建一个上传文件夹。并在公共文件夹中创建一个指向上传的符号链接。问题是,每次我们解除应用程序时,Grunt 都会重写".tmp/公共"的所有内容。

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

  1. sudo npm install grunt-contrib-symlink
  2. 任务/配置中创建咕噜声任务。并像符号链接一样命名它.js。

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

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