Angular+Express路由跳转的页面成功,刷新后not found?
通过angular路由调用express router实现跳转,正常如下图,能显示controller中定义的值 但是刷新网页就变成如下图 个人觉得是刷新请求了express的路由 而不是angular ,新手求大神指教
4 回复
需要弄个 server side rewrite。大概意思是当你刷新页面之后 浏览器会发一个 请求 到 /wel
这个 route ,这时后台重新 load 一遍你的 index.html 和其他所有的js, hmtl, css。然后angular 重新load 重新 bootstrap, 再根据你当前的url /wel
重新load你的 template,controller
var express = require('express');
var app = express();
app.use('/js', express.static(__dirname + '/js'));
app.use('/dist', express.static(__dirname + '/../dist'));
app.use('/css', express.static(__dirname + '/css'));
app.use('/partials', express.static(__dirname + '/partials'));
app.all('/*', function(req, res, next) {
// Just send the index.html for other files to support HTML5Mode
res.sendFile('index.html', { root: __dirname });
});
app.listen(3006); //the port you want to us
关键词: history api fallback
@qitang 多谢啦 你的方法我学到了 不过我试过会报错 而且浏览器崩溃 我原来代码中加了// $locationProvider.html5Mode(true); 我注释之后 在链接中加上 “#/” 问题就解决了 但是如果以后想要去掉链接中的# 那问题依然还是在的 你的回复让我觉得还是要加强自己项目流程中的逻辑思维 再次感谢
@Kaijun 虽然我这里用不到 不过也学到了一个新的技能 多谢多谢