一些javascript / css文件在heroku上的公共目录中不可用,但在本地工作

时间:2016-01-03 09:24:54

标签: node.js express heroku

我的nodejs应用程序在本地运行正常,所有资源都可用。

当上传到heroku时,找不到4个css / js资源,其他所有内容都在本地和heroku上正常加载。

我试过了:

检查远程heroku目录以确保我的公共/供应商目录中存在丢失的文件 - 他们这样做。

我尝试更改“生产”的静态路径。但这似乎没有影响。

var env = process.env.NODE_ENV || 'development';

if ('development' == env) {
    mongoose.connect(configDB.devurl); // connect to our database
    app.use(morgan('dev')); // log every request to the console
    app.use(express.static(path.join(__dirname, 'public')));
}

if ('production' == env) {
    process.env.PWD = process.cwd();
    mongoose.connect(configDB.produrl); // connect to our database
    app.use(express.static(process.env.PWD + '/public'));
}

有什么想法吗?我很好,真的很困惑。当我直接指向文件时,这就是heroku日志显示的内容:

2016-01-03T08:58:05.943206+00:00 heroku[router]: at=info method=GET path="/vendor/metisMenu/dist/metisMenu.css" host=sleepy-refuge-6282.herokuapp.com request_id=47bd858a-8dd6-4fe3-b99c-33d2f135d719 fwd="94.0.192.69" dyno=web.1 connect=1ms service=2381ms status=404 bytes=246

我正在使用快递4

2 个答案:

答案 0 :(得分:1)

您正在OS X或Windows上开发应用程序,文件系统不区分大小写。

Heroku Dynos实际上是具有区分大小写文件系统的linux容器,因此filename的大小写应该匹配。

答案 1 :(得分:0)

答案是,在heroku上,文件需要与应用程序中的底层文件夹结构具有相同的大小写。它对我的localhost没有影响,但是由于某种原因它被推送到Heroku时会发生。