javascript - Express 服务器 404ing 所有来自索引的请求

标签 javascript node.js express

在下面的express/gulpfile.js代码中,我在快速服务index.html时遇到问题,但索引本身无法命中lib/*目录,并且仅 404s 在我的 index.html 顶部发出的所有请求。

我正在使用 nodemon 代理浏览器同步。不过我很确定它与我的浏览器同步配置无关,因为当我只使用 node config/server.js 时,同样的问题仍然存在。

快速配置:

var express = require('express');
var path = require('path');
var filePaths = require('./filePaths');
var app = express();

//filePaths.releaseIndex === './release/index.html'
app.get('/', function (req, res) {
    res.sendFile(filePaths.releaseIndex, {root: './'});
});

app.listen(5000);

Gulp 任务配置:

//filePaths.release === './release'
//filePaths.server === './config/server.js'
gulp.task('browser-sync', ['nodemon'], function() {
    browserSync.init(null, {
        proxy: "http://localhost:5000",
        files: [filePaths.release],
        browser: "google chrome",
        port: 7000
    });
});

gulp.task('nodemon', function (cb) {
    var started = false;
    return nodemon({
        script: filePaths.server
    }).on('start', function () {
        if (!started) {
            cb();
            started = true; 
        } 
    });
});

index.html:

<script src="lib/es6-shim.min.js"></script>

文件夹结构:

config
    server.js
release
    index.html
        lib
            es6-shim.min.js
            Rx.js
            ...

我在 res.sendFile() 中尝试了许多不同的变体,但就是无法立足,尽管我确信这就是问题所在。

有什么想法吗?

最佳答案

您的服务器不处理除 / 之外的任何其他路径。要处理它们,您可以在第一条路线之后添加以下内容:

app.get('*', function (req, res) => {
    res.sendFile(req.url, {root: filePaths.release})
});

关于javascript - Express 服务器 404ing 所有来自索引的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35537815/

相关文章:

javascript - 在 php 中隐藏/显示切换回显结果

javascript - youTube外部控件

node.js - 如何使用 Node.js/Express + Passport + Websockets 进行身份验证?

Node.js/ express : POST being turned into GET (code 302)

javascript - 调整窗口大小时重新加载 JavaScript 动画

javascript - 将辅助数据传递给我的第二个回调函数

node.js - Node Express - 无法 POST/错误

windows - EPERM,不允许操作错误,配置存储

node.js - Node (Express)文件导入到 Controller 中

express - 在 Sequelize 中分组和计数