我想从我的angularjs应用程序中删除#,我正在开发一个网站,我认为它可能有助于使SEO友好的网站,可能是我错了,请帮助 感谢
答案 0 :(得分:3)
我同意Joe Lloyd关于从您的网址中删除#的方法,但它不会帮助您使您的angularjs网站可抓取。 请查看以下步骤:
配置html5mode
config(function($ routeProvider,$ locationProvider){ $ locationProvider.html5Mode(真);
将<meta name="fragment" content="!">
添加到您的网页,以便Google博客机构知道在您的请求结束时添加?_escaped_fragment_ =。
处理服务器端的?_escaped_fragment_=
并提供所请求的html页面的静态快照(phantomjs可以完成工作),因此机器人将索引html页面的渲染版本。
使用www.google.com/webmasters /
玩得开心!
答案 1 :(得分:1)
要删除网址中的#,您需要将其添加到主模块中。您将应用程序置于html5模式。
//This config is used to remove the # in the html
app.config(["$locationProvider", function($locationProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
}]);
当您点击刷新时,这将产生服务器副作用,您需要添加一个能够找到新网址的额外路线。这将在您的快递js app.js
文件中有效。公用文件夹包含您的角度应用,并且您有index.html
文件
// ### CATCH REFRESH TO INDEX ###
app.all('/*', function(req, res, next) {
// Just send the index.html for other files to support HTML5Mode
res.sendFile('public/index.html', { root: __dirname });
});