将Sails应用程序部署到Heroku时找不到资产

时间:2018-07-17 12:42:13

标签: heroku sails.js

我在Sails中很陌生。

我已经从Sails模板创建了一个新的网络应用,并尝试将其上传到Heroku。除了资产,其他一切都很好,找不到资产(js,css,图像等)。

我发现Sails使用Grunt将文件复制到.tmp文件夹。我已经检查过并将Grunt添加到我的package.json文件中。我还用web: node app.js命令和指向NODE_ENV的{​​{1}}变量添加了一个Procfile。

我没有更改任何Grunt任务,默认情况下是production文件和Gruntfile.js目录。

关于我还能检查什么的任何想法?

2 个答案:

答案 0 :(得分:2)

我以不同的方式解决了这个问题。除了在OP的答案中包含一些grunt部门外,我还在postinstall的脚本部分中添加了package.json

  "scripts": {
    "start": "NODE_ENV=production node app.js",
    "test": "npm run lint && npm run custom-tests && echo 'Done.'",
    "lint": "eslint . --max-warnings=0 --report-unused-disable-directives && echo '✔  Your .js files look so good.' && htmlhint -c ./.htmlhintrc views/*.ejs && htmlhint -c ./.htmlhintrc views/**/*.ejs && htmlhint -c ./.htmlhintrc views/**/**/*.ejs && htmlhint -c ./.htmlhintrc views/**/**/**/*.ejs && htmlhint -c ./.htmlhintrc views/**/**/**/**/*.ejs && htmlhint -c ./.htmlhintrc views/**/**/**/**/**/*.ejs && htmlhint -c ./.htmlhintrc views/**/**/**/**/**/**/*.ejs && echo '✔  So do your .ejs files.' && lesshint assets/styles/ --max-warnings=0 && echo '✔  Your .less files look good, too.'",
    "custom-tests": "echo \"(No other custom tests yet.)\" && echo",
    "postinstall": "grunt build", // added this
...

此操作对heroku的影响是要求运行grunt任务build,该任务会编译资产并将其复制到适当引用的位置(即:.tmp

答案 1 :(得分:0)

解决方案非常简单。原来,我的package.json中没有为生产环境添加Grunt依赖项,而仅为开发环境添加了Grunt依赖项。我已经添加了它们,并且运行良好。

"dependencies": {
    "@sailshq/connect-redis": "^3.2.1",
    "@sailshq/lodash": "^3.10.3",
    "@sailshq/socket.io-redis": "^5.2.0",
    "async": "2.0.1",
    "sails": "^1.0.2",
    "sails-hook-apianalytics": "^2.0.0",
    "sails-hook-organics": "^0.13.0",
    "sails-hook-orm": "^2.0.0-16",
    "sails-hook-sockets": "^1.4.0",
    "sails-postgresql": "^1.0.1",
    "grunt": "1.0.1", // I've added these two lines
    "sails-hook-grunt": "^3.0.2" // I've added these two lines
},
"devDependencies": {
    "@sailshq/eslint": "^4.19.3",
    "@sailshq/htmlhint": "^0.9.16",
    "@sailshq/lesshint": "^4.6.6",
    "grunt": "1.0.1",
    "sails-hook-grunt": "^3.0.2"
},