angularJS友好URL实现,tomcat环境 1. [代码] [JavaScript]代码 html lang="zh-CN" ng-app="app"head base href="/" //增加base标签// 省略代码/head 2. [代码] [JavaScript]代码 app.config(['$routeProvider', '$locationProvider',
1. [代码][JavaScript]代码
<html lang="zh-CN" ng-app="app"> <head> <base href="/"> //增加base标签 // 省略代码 </head>
2. [代码][JavaScript]代码
app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { $stateProvider .state('login', { url: '/login', templateUrl: 'src/login/login.html', controller: 'loginCtrl' }); $locationProvider.html5Mode(true); }]);
3. [代码][JavaScript]代码
tomcat配置 这里需要使用到UrlRewriteFilter这个插件,使用方法: 1.将urlrewritefilter-4.0.3.jar包放入应用目录“WEB-INF/lib”下。 2.在WEB-INF/web.xml配置文件中加入: <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> 3.在WEB-INF目录新建“urlrewrite.xml”转发规则文件。内容如下: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd"> <urlrewrite> <rule> <from>^/[a-zA-Z]+(/([a-zA-Z]|[0-9])*)*$</from> <to>/index.html</to> </rule> </urlrewrite> 其中rule部分匹配地址用到了正则表达式,这里不赘述。这样就将规则设置完成了,重启tomcat刷新页面,没有#也不会404了。