ExpressJS中的AngularJS路由

 爱她一生2502876055 发布于 2023-02-12 17:51

我在带有ExpressJS的NodeJS服务器上有一个AngularJS应用程序.现在我将Angular应用程序作为静态文件提供服务:

app.use(express.static(__dirname + '/app'));

但在导航方面,我有一个#符号:

http://127.0.0.1:8080/#/queryes

为了解决这个问题,我把这段代码放在Angular Router中:

$locationProvider.html5Mode(true);

但现在我无法获得部分观点.如何将Angular Routes与ExpressJS混合使用?

1 个回答
  • 为了将AngularJS html5mode与Express一起使用,您必须为所有请求提供"index.html",以便将所有路由保留到AngularJS.我曾经有同样的问题.

    首先,您声明所有API端点路由,任何静态文件目录(CSS,JS,partials等),然后为所有剩余请求提供index.html.例如:

        // serve all asset files from necessary directories
        app.use("/js", express.static(__dirname + "/app/js"));
        app.use("/img", express.static(__dirname + "/app/img"));
        app.use("/css", express.static(__dirname + "/app/css"));
        app.use("/partials", express.static(__dirname + "/app/partials"));
        app.use("/templates", express.static(__dirname + "/app/templates"));
    
        // any API endpoints
        app.post('/api/v1/auth/login', routes.auth.login);
    
        // serve index.html for all remaining routes, in order to leave routing up to angular
        app.all("/*", function(req, res, next) {
            res.sendfile("index.html", { root: __dirname + "/app" });
        });
    

    2023-02-12 17:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有