我正在尝试将 Mean.io 用于我正在制作的应用程序,并且我基本上没有更改原始配置文件的任何内容,当我在生产模式下将此应用程序启动到 heroku 时,它不会聚合 dist 文件正确并给了我
“加载资源失败:服务器响应状态为 404(未找到)http://****.herokuapp.com/bower_components/build/css/dist.min.css”
同样适用于 JS 文件。相关文件如下所示: Assets.json: {
"core": {
"css": {
"bower_components/build/css/dist.min.css": [
"bower_components/met_theme/global/css/components.css"
]
},
"js": {
"bower_components/build/js/dist.min.js": [
"bower_components/angular/angular.js",
"bower_components/angular-mocks/angular-mocks.js",
"bower_components/angular-cookies/angular-cookies.js",
"bower_components/angular-resource/angular-resource.js",
"bower_components/angular-ui-router/release/angular-ui-router.js",
"bower_components/angular-bootstrap/ui-bootstrap.js",
"bower_components/angular-bootstrap/ui-bootstrap-tpls.js",
"bower_components/met_theme/global/scripts/datatable.js",
"bower_components/met_theme/global/scripts/metronic.js"
]
}
}
}
在我的 gruntfile 中:
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
assets: grunt.file.readJSON('config/assets.json'),
// later on
uglify: {
core: {
options: {
mangle: false
},
files: '<%= assets.core.js %>'
}
},
csslint: {
options: {
csslintrc: '.csslintrc'
},
src: paths.css
},
cssmin: {
core: {
files: '<%= assets.core.css %>'
}
},
我可以看到这是一个生产与开发错误,就好像我将 express.js 文件中的资产管理器对象更改为:
var assets = assetmanager.process({
assets: require('./assets.json'),
debug: process.env.NODE_ENV !== 'development',
webroot: /public\/|packages\//g
});
与 !== 'production' 相反,它在本地给了我同样的问题。我对这种加载文件的方式不是很熟悉,而且我似乎找不到任何解决方案,所以任何能提供答案或指出我正确方向的人都将不胜感激。