如何为使用 ExpressJs 服务器的 NodeJs 应用程序设置基础 URL 并为前端设置 AngularJs?

How to set a base URL for NodeJs applications using ExpressJs server and AngularJs for frontend?

我想在我的应用程序加载到浏览器时向它添加一个基础 URL。

我的 expressJs 配置是:

App.js

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(expressSanitizer());
app.use(express.static(__dirname + '/webapp'));
app.engine('html',require('ejs').renderFile);
app.set('view engine', 'html');

AngularJs 路由器配置:

index.js

$urlRouterProvider
        .when('','login')
        .when('/','login')
        .otherwise(function($injector, $location){
            var state= $injector.get('$state');
            state.go('error', { url: $location.path() }, { location: true });
        });

        //define states
        $stateProvider
        .state('/',{
            templateUrl: 'public/login.html',
            controller: 'login',
            authenticated:false
        })
        .state('login',{
            url: '/login',
            templateUrl: 'public/login.html',
            authenticated:false
            // controller: 'login'
            // template: '<h1> Routing to login page </h1>'
        })

我希望它类似于我们在 Apache 中部署应用程序时的情况 Tomcat。

当前,当我启动服务器时,url 类似于 localhost:8080/login,但我希望它是 localhost:8080/CRM/login

于是,我就这样想出了解决办法

我在我的 index.html 中添加了一个基本标签,并在我的 App.js

中的所有 api 中添加了“/CRM”

index.html

<base href="/CRM/">

App.js

app.use('/CRM/users',appRoutes);