gpt4 book ai didi

javascript - Backbone.js pushState 不工作并给出 404 错误

转载 作者:行者123 更新时间:2023-12-04 02:17:02 24 4
gpt4 key购买 nike

我一直在 Backbone.js 上观看 PeepCode 的截屏视频,并用它完成了编码。

我已经完成了第一部分,现在我有一个这样的路由器:

routes: {
'': 'home',
'blank': 'blank'
}

我也有这个来启动应用程序:

$(function(){
window.App = new BackboneTunes();
Backbone.history.start({pushState: true});
});

现在,如果我输入 http://localhost:9292/#blank在 URL 栏中,它将我重定向到 http://localhost:9292/blank , 但如果我输入 http://localhost:9292/blank直接给出 404 消息。

这是正常的还是我这里有错误?

提前致谢。

最佳答案

对于那些认为上述答案不够充分的人:您要做的是让您的服务器将所有 URL 重新路由到您的 index.html 页面,Backbone.js 将在其中为您处理路由。以下步骤可让您执行此操作,同时仍将地址栏中的 URL 保持不变。

如果您使用 Apache 作为容器,则需要在应用程序的 .htaccess 文件中启用 mod_rewrite 模块。

在你的 httpd 文件中:

1) 确保您的文档根目录的“覆盖”命令启用为“全部覆盖”而不是“不覆盖”

2) 通过取消注释此行启用 mod_rewrite.so 模块:

LoadModule rewrite_module modules/mod_rewrite.so

在您的应用程序的 .htaccess 文件中(如果您没有,请创建一个):

1) 如果您已经编写了一个 IfModule mod_rewrite.c 模块,则将这些行复制到其中一个模块中:

RewriteEngine On
RewriteRule ^/[a-zA-Z0-9]+[/]?$ /index.html [QSA,L]

你应该有这样的东西:

<IfModule mod_rewrite.c>  RewriteEngine On  RewriteRule ^/[a-zA-Z0-9]+[/]?$ /index.html [QSA,L]</IfModule>

编辑

注意:在 Apache 2.2+ 中,您现在可以使用 FallbackResource而不是 mod_rewrite,它需要更少的行并完成相同的事情。

关于javascript - Backbone.js pushState 不工作并给出 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com