什么是在产品服务器上进行Angular 4路由工作的最快解决方法



我花了整整6天的时间将仅HTML5应用程序转换为Angular 4路由应用程序。只是能够使用Angular 4路由使网站更加友好。

成功开发它后,我将其部署在服务器上,只是为了意识到直接URL导致404页。示例:http://abc .com/route

同样的事情在RouterLinks的点击上正常工作。我已经看到了有关此问题的几篇博客文章,但是我无法决定哪个是最快的解决方案。有人可以帮我吗?我不使用Angular CLI,请注意。

这是因为所有路由都必须转到index.html和Angular-Router从那里进行路由。因此,将节点服务器启动并运行,然后将所有请求重定向到index.html

这就是您的服务器的外观

import { json, urlencoded } from "body-parser";
import * as compression from "compression";
import * as express from "express";
import * as path from "path";

const app: express.Application = express();
app.disable("x-powered-by");
app.use(json());
app.use(compression());
app.use(urlencoded({ extended: true }));
if (app.get("env") === "production") {
  // in production mode run application from dist folder
  app.use(express.static(path.join(__dirname, "/../client")));
}
app.use('*', (req, res)  => {
  res.sendFile(path.join(__dirname, '/../client/index.html'));
});
// catch 404 and forward to error handler
app.use((req: express.Request, res: express.Response, next) => {
  const err = new Error("Not Found");
  next(err);
});
// production error handler
// no stacktrace leaked to user
app.use((err: any, req: express.Request, res: express.Response, next: express.NextFunction) => {
  res.status(err.status || 500);
  res.json({
    error: {},
    message: err.message,
  });
});
export { app };

您可以克隆此项目,然后用您的Angular应用

替换Angular应用程序

相关内容

  • 没有找到相关文章

最新更新