要在Angular.js应用程序中删除URL中的#!,可以使用$locationProvider服务的html5Mode方法。该方法允许你使用HTML5的历史API来管理URL。
首先,确保在配置模块中注入$locationProvider服务:
angular.module('myApp', [])
.config(function($locationProvider) {
// 在这里使用$locationProvider进行配置
});
然后,调用$locationProvider的html5Mode方法,并将其设置为true:
angular.module('myApp', [])
.config(function($locationProvider) {
$locationProvider.html5Mode(true);
});
接下来,在你的HTML模板中,你需要添加一个base标签,来指定基础URL:
最后,在你的服务器端配置中,确保所有请求都指向你的index.html文件。这样,当用户访问你的应用程序中的任何URL时,都会加载index.html,并在Angular.js中处理路由。
这样,你的应用程序将不再使用#!作为URL的一部分,而是直接使用文章slug或其他路由信息。
请注意,当使用html5Mode时,在不支持HTML5的浏览器中,URL仍然会包含#!。为了在不支持HTML5的浏览器中保持应用程序正常工作,你需要使用服务器端重定向来处理这些URL。
上一篇:Angular.js 复选框