意识到在同一个问题上存在很多问题,但没有一个问题有效。已经尝试过设置pushState true和hashChage false但每次路由都给我无法获取错误。这是我的路线文件
var appRouter = Backbone.Router.extend({
routes:{
"login":"login"
},
login:function () {
var LoginView = Backbone.View.extend({
initialize: function () {
this.render();
},
render: function () {
var that = this;
$.get('templates/login.html', function (data) {
template = _.template(data, {});
that.$el.html(template);
}, 'html');
}
});
var loginView = new LoginView({ el: $("#test") });
},
});
var sys = new appRouter();
Backbone.history.start({pushState:true});
答案 0 :(得分:0)
您的HTML override func tearDown() {
super.tearDown()
// Would like an if statement here to update my logs but not sure how to detect the state
if fail {
log.update("failed")
} else if !fail {
log.update("success")
}
}
?
您的浏览器将转到此网址。
你需要防止这种情况发生。
阅读this question和top answer以获得解决方法。
这很有效。但是,当我刷新页面或直接点击URL时,它会抛出相同的错误。有什么方法可以解决这个问题吗?
是的,但它需要您对Web服务器进行更改。
如果您可以添加重写规则,您可以查找不存在的URL并假设它们是推送状态生成并返回您的根页。
如果没有看到应用程序的更多细节,很难说最佳解决方案是什么。
答案 1 :(得分:0)
正如Adrian建议的那样,它解决了ContentView
标记点击请求的问题。可以通过修改您的htaccess文件来解决直接网址命中和页面刷新错误,如Adrian所建议的那样。在我的情况下,我已将gruntfile.js文件修改为here