繁体   English   中英

AngularJS和Spring MVC项目删除“#!”

[英]AngularJS and Spring MVC Project remove '#!'

我正在一个项目中,该项目使用AngularJS作为前端,并使用Spring MVC作为后端。 我也使用了插件ui-router 基本网址看起来像localhost:8080/PROJECT_NAME/#! 为了更好看,我正在尝试从网址中删除/#!/

我无法从互联网的通用解决方案中获得正确的结果:

// Insert this into Angularjs module config file
$locationProvider.html5Mode(true);

// Add this into META tag
<base href="/">

完成此操作后,我得到的是所有资源都崩溃了,所以我添加了项目名称:

<base href="PROJECT_NAME">

资源已正确获取,但是,日志显示:

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:

(anonymous function)    @   angular.js:68
(anonymous function)    @   angular.js:4756
forEach @   angular.js:357
loadModules @   angular.js:4717
createInjector  @   angular.js:4639
doBootstrap @   angular.js:1838
angular.resumeBootstrap @   angular.js:1867
maybeBootstrap  @   hint.js:569

我不知道下一步该怎么做,可能需要您的帮助,谢谢!


路由器代码:

app.config(
    function ($stateProvider, $urlRouterProvider){
        $urlRouterProvider.otherwise("/");

        $stateProvider
            .state('index', {
                url: "/",
                templateUrl: "homeview"
            });

        // use the HTML5 History API
        $locationProvider.html5Mode(true);
    }
);

[1]使用下面提到的代码将html5Mode设置为true,

.config(["$locationProvider", function($locationProvider) {
    $locationProvider.hashPrefix('');
    $locationProvider.html5Mode(true);
}])

[2]在index.html中设置基本网址,如下所示:

<base href="/" />

[3]创建一个控制器以将url重定向到索引文件

@RequestMapping(value = "/{[path:[^\\.]*}")
public String stalklist() {
    return "forward:/";
}

#通知AngularJS不需要去该URL的服务器,而去ng-router

因此,理想情况下,您不应该删除该内容。

使用$ locationProvider模块并将html5Mode设置为true

angular.module('StudentView', []).
 config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

$routeProvider.
  when('/student', {templateUrl: 'partials/studentList.html',   controller: StudentListCtrl}).
  when('/student/:studentId', {templateUrl: 'partials/studentDetail.html', controller: StudentDetailCtrl}).
  otherwise({redirectTo: '/phones'});

$locationProvider.html5Mode(true);

  }]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM