在下面的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()
尝试了很多不同的变体,但是虽然我确定这是问题,但我们无法立足。
有什么想法吗?
答案 0 :(得分:1)
您的服务器不处理除/
之外的任何其他路径。要处理它们,您可以在第一条路线后添加:
app.get('*', function (req, res) => {
res.sendFile(req.url, {root: filePaths.release})
});