我正在使用koa-static在koajs上主持一个emberjs应用程序。 根据以下代码:
var app = koa();
var App1 = koa();
App1.use(stati(__dirname + "/App1"));
app.use(mount('/AppViewer',App1));
app.listen(3000);
调用localhost:3000/AppViewer
时我无法看到我的页面并收到错误说无法找到.js和.css文件,但在调用localhost:3000/AppViewer/index.html
时所有内容都能正常工作。所以我的问题是如何在致电localhost:3000/AppViewer
时看到我的页面。
答案 0 :(得分:2)
这对我使用ember-cli并部署到heroku就足够了:
var common = require('koa-common'),
koa = require('koa'),
app = koa();
var env = process.env.NODE_ENV || 'development',
port = process.env.PORT || '3800';
app.use(common.logger());
app.use(common.responseTime());
app.use(common.static(__dirname + "/dist"));
app.listen(port);
console.log('listening on port ' + port);
其中/ dist是ember构建的构建输出(相当于grunt dist w / EAK)
答案 1 :(得分:1)
首先,它看起来很奇怪,因为koa-static
应该默认在root上提供index.html
。请确保App1
未将/
路由到其他位置。
然后,您仍然可以使用koa-rewrite
删除网址中的index.html
。类似的东西:
var rewrite = require('koa-rewrite');
App1.use(rewrite('/*', '/index.html'));
<强>更新强>
使用以下代码进行测试:
var koa = require('koa');
var app = koa();
var app1 = koa();
var mount = require('koa-mount');
var serve = require('koa-static');
var rewrite = require('koa-rewrite');
var route = require('koa-route');
app1.use(serve(__dirname + "/app1"));
app1.use(rewrite('/*', '/index.html'));
app.use(mount('/av', app1));
app.use(route.get('/', function *(next) {
this.body = 'I\'m the main app!';
}));
app.listen(3000);
答案 2 :(得分:0)
koa-static不适用于我。相反,我尝试了koa-static-server和yay!
我的中间件:
var Proxy = require("koa-proxy");
// const Rewrite = require("koa-rewrite");
const StaticServer = require("koa-static-server");
export const InstallWebApp = (app) => {
if (process.env.NODE_ENV === "production") {
// Install static web app
// app.use(Rewrite('/*', '/'));
app.use(StaticServer({rootDir: `${__dirname}/../../../../client-web/build`, notFoundFile: "index.html"}));
} else {
// Install dev server
app.use(
Proxy({
host: `http://localhost:${process.env.WEB_DEV_PORT}`,
})
);
}
};