发布
社区首页 >问答首页 >将所有路由或路径发送到angular

将所有路由或路径发送到angular
EN

Stack Overflow用户
提问于 2017-07-11 01:20:53
回答 1查看 18关注 0票数 0

在我的节点js app.js中,我希望无论url是什么,它都会进入我的angular/ app.js页面,即begin.html,app.js驻留在服务器文件夹中,begin.html驻留在我的项目的客户端文件夹中。就像这样:-

代码语言:javascript
代码运行次数:0
复制
-Project
----Server
---------app.js
----Client
---------begin.html

我应该在app.js中输入什么才能使所有urls都转到我使用Angular路由的begin.html??我想大概是这样的..。

代码语言:javascript
代码运行次数:0
复制
var begin=require('../Client/begin.html);
app.use('*',begin);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-11 01:32:47

如果您打算让所有路由都返回到该HTML页面,那么您可以只使用Nginx这样的web服务器静态地为该目录提供服务。

看起来您正在使用Express,但这只是一个猜测。如果你想发出从Angular端到HTML端的Node.js请求,那么你可能希望默认响应返回你的HTML端,但仍然允许请求通过。我会考虑使用express中的static方法来公开静态目录,同时仍然允许您构建其他路由(即api路由)。

它可能看起来像这样:

代码语言:javascript
代码运行次数:0
复制
// Already created express app above

/*
  This will default to using index.html from
  your Client directory and serve any other resources
  in that directory.
*/
app.use(express.static('../Client'));

// Any other routes

app.listen(3000); // Or whatever your port is

或者,您也可以使用404错误处理程序样式实现它,并返回默认文件:

代码语言:javascript
代码运行次数:0
复制
/*
  This comes after all of your other
  route and middleware declarations and
  before the .listen() call
*/
app.use(function(req, res, next) {
  res.sendFile(path.join(__dirname + '/../begin.html'));
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45018138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档