gpt4 book ai didi

.htaccess - Backbone.js PushState routes .htaccess 仅作为散列工作,但无处可寻

转载 作者:行者123 更新时间:2023-12-03 08:25:17 25 4
gpt4 key购买 nike

例如,我有一个网站 domain.com。我有带有 pushstate 和 fallback 的 backbone.js,当我转到 domain.com/about 时,它会加载 index.html 页面并将 pushstates 加载到 about。一切正常。但是如果我想转到一个目录,里面有一个页面,例如:www.domain.com/bio/moreinfo,它不起作用并抛出一个无效页面。如果我在 IE 中执行它,它工作正常。我的 htaccess 文件包含以下内容:

RewriteEngine on
# html5 pushstate (history) support:
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.html [L]
</ifModule>

如果我直接导​​航到 domain.com/bio/moreinfo 页面,它就会崩溃(我想是因为我的服务器想要转到 bio 目录?或者我可能需要以不同方式实际控制 Backbone 中的路由?仅此而已适用于刘海,因此它必须是一些奇怪的推送状态目录,其中 #bio/info 与 apache 不同/bio/info 。感谢任何帮助。

最佳答案

很好地使用了另一个建议的帖子中的答案,这是为了 <base href="/" />在 index.html 文件中。这实际上使我的 pushState 中的子目录工作了!只是建议..但作为返回,它破坏了我的 IE,但我通过在我的主干 INIT 中添加额外的代码来修复它

 Backbone.history.start({ pushState: Modernizr.history, silent: true });
if(!Modernizr.history) {
var rootLength = Backbone.history.options.root.length;
var fragment = window.location.pathname.substr(rootLength);
var search = window.location.search;
Backbone.history.navigate('/#' + fragment + search, { trigger: true });
} else {
Backbone.history.loadUrl(Backbone.history.getFragment())
}

关于.htaccess - Backbone.js PushState routes .htaccess 仅作为散列工作,但无处可寻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14483076/

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