我想使用html音频播放器,但是为了在页面之间导航时保持播放器的播放,我使用Ajax仅刷新内容。问题是我的htaccess。我想将所有内容重定向到index.php文件,以便可以验证任何请求,然后返回html页面。但是,当我尝试使用Ajax刷新内容时,htaccess会使重定向再次加载index.php,在index.php内创建index.php,从而复制模板。在这种情况下,是否有任何解决方法,可以一起使用这2种东西,以仅在导航中刷新内容,保持播放器运行,并使每个重定向都转到index.php以验证请求? 我在下面做了一个简单的例子:
index.php
<?php
require_once "header.html";
$routes = array(
"/" => "home.html",
"/profile" => "profile.html",
"/config" => "config.html"
);
$uri = $_SERVER["REQUEST_URI"];
$file = isset($routes[$uri]) ? $routes[$uri] : $routes["/"];
echo '<div id="content">';
require_once $file;
echo '</div>';
require_once "footer.html";
?>
.htaccess:
DirectorySlash Off
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.php [L]
header.html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).on('click', "a", function(e){
$.ajax({
async: false,
url: this.pathname,
type: 'post',
success: function(ret) {
$("#content").html(ret);
}
});
return false;
});
</script>
<style>
#content{
border: 1px solid black;
}
</style>
<div id="header">
<a href="/">Home</a>
<a href="/profile">Profile</a>
<a href="/config">Configurations</a>
</div>
footer.html
<div id="footer">
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
</div>