I have a structure like so
/applications
/applications/testRoute
/applications/testRoute/index.html
/applications/testRoute/test.js
/applications/server.js
我正在子路径中运行带有多个角度应用的快速应用。每个SPA都有一个索引文件可以解决问题。当我从父目录运行快速服务器时,子目录中的任何索引文件都会尝试从父目录开始请求静态文件。我应该能够使用相对文件路径,但它们都从服务器的根目录开始。怎么会?正如您在下面的示例中所看到的(test-route)将尝试从主目录而不是/testRoute/test.js请求test.js.我试过'test.js','。/ test.js /','/ test.js'。任何子目录索引文件总是尝试使其相对路径成为服务器的根目录。怎么样?
// server.js
// BASE SETUP
// ==============================================
var express = require('express');
var path = require('path');
var app = express();
var port = process.env.PORT || 8080;
// ROUTES
// ==============================================
// sample route with a route the way we're used to seeing it
app.use('/testRoute', express.static('testRoute'));
app.get('/', function(req, res) {
var options = {
root: __dirname + '/'
};
res.sendFile('index.html',options);
});
app.get('/test-route', function(req, res) {
var options = {
root: __dirname + '/testRoute'
};
res.sendFile('index.html',options);
});
app.listen(port);
<!--Test Route Index -->
<html>
<head>
<script src="test.js"></script>
</head>
<h1>Test Route</h1>
</html>
答案 0 :(得分:0)
我处理这个问题的方法是让应用程序的每个部分都是自己的express
应用程序。这样,他们就可以定义自己的静态文件夹。然后,您只需将express
应用程序与app.use('/test-route', myTestRouteApp)
粘贴在一起。
这是您的second-app.js
:
const express = require('express');
module.exports = () => {
const app = express();
app.use('/static', express.static(...));
...
return app;
};
这是您的app.js
:
const express = require('express');
const secondApp = require('./second-app');
module.exports = () => {
const app = express();
app.use('/second-app', secondApp());
...
return app;
};
因此,一旦您启动了应用,就可以访问/second-app/static/
。