Express:服务器在使用URL参数时无法处理刷新

时间:2018-05-09 16:42:11

标签: javascript node.js express

使用网址参数时,例如books/1,由于某种原因,快递应用无法找到并提供Index.js

我正在使用绝对路径,但即使我的快递应用程序在使用params在网址刷新时仍无法找到Index.js

unable to find Index.js

正如您在屏幕截图中看到的那样,而不是提供Index.js,它无法找到它,而是将{html文件作为Index.js提供。

我正在做catch-all solution,它在网址参数刷新之前效果很好:

app.use(express.static(path.resolve(__dirname,  '..', 'build')));
app.get('/*', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'index.html'));
});

我甚至试图为/Index.js设置一条特定路线,但没有运气。

app.use(express.static(path.resolve(__dirname,  '..', 'build')));
app.get('/Index.js', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'Index.js'))
});
app.get('/*', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'index.html'));
});

我还尝试使用serve-static代替express.static,但没有帮助。

如果有人有兴趣看一下,我已经在repo重复了这个问题。

此项目的前端位于reason-react

2 个答案:

答案 0 :(得分:0)

这可能过于简单,但您尝试过:import { fromEvent } from 'rxjs/observable/fromEvent';

答案 1 :(得分:0)

在mountpath“book / Index.js”上提供Index.js解决了这个问题。

像这样:

app.use(express.static(path.resolve(__dirname,  '..', 'build')));
app.get('/book/Index.js', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'Index.js'));
});
app.get('/*', (req, res) => {
 res.sendFile(path.join(__dirname, '..', 'build', 'index.html'));
});