在没有 JavaScript 框架的 HTML 中安装 turbolinks
Install turbolinks in HTML without JavaScript framework
刚开始使用 turbolinks,他们声称它可以在没有客户端 javascript 框架的情况下使用,我制作了一个 bootstrap 4 模板并尝试安装它。
从 repo 文件下载 .js 并包含在头部:
<script type="text/javascript" src="js/turbolinks.js"></script>
就在结束正文标签之前:
<script>
Turbolinks.start()
</script>
控制台调试没有报错,js加载了但是每次访问新的页面都会加载整个页面link.
试图在网络服务器中添加 var Turbolinks = require("turbolinks")
但出现错误。
Server.js
//jshint esversion:6
const express = require("express")
const app = express();
var Turbolinks = require("turbolinks")
app.get("/", function(req, res){
res.sendFile( __dirname + "/public/" + "index.html" );
});
app.use(express.static(__dirname + '/public'));
app.listen(3000, function(){
console.log("Server started on port 3000")
});
index.html
<!doctype html>
<html lang="en">
<head>
<link rel='icon' href='favicon.ico' type='image/x-icon' />
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css" type="text/css">
<link href="https://fonts.googleapis.com/css?family=IM+Fell+English|Lato:400,700&display=swap" rel="stylesheet">
<script src="https://kit.fontawesome.com/e5f3028323.js" crossorigin="anonymous"></script>
<script type="text/javascript" src="js/turbolinks.js"></script>
<title>App</title>
</head>
<body>
<section class="navbar sticky-top justify-content-between">
<span></span>
<div class="p-2 bd-highlight">CW App</div>
<button type="button" class="btn btn-nav">
<i class="fas fa-ellipsis-h"></i>
</button>
</section>
<div class="nav-bg"></div>
<section class="container">
<div class="row">
<div class="col d-flex justify-content-center cerca">
<form class="form-inline">
<input class="form-control form-control-search" type="search" placeholder="Search" aria-label="Search">
<button class="btn-cerca my-2 my-sm-0" type="submit"><i class="fa fa-search"></i></button>
</form>
</div>
</div>
</section>
<section class="container" data-turbolinks-permanent>
<div class="row">
<div class="col">
<div class="list-group list-button mx-auto">
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/rulebook.png">Rulebook</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/factions.png">Factions</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/neutrals.png">Neutrals</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/maps.png">Maps</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/dice.png">Dice Roll</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/randomizer.png">Game Randomizer</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/doom.png">Doom & Ritual Track</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center" onclick="window.location.href = './timer.html';">
<span><img class="menu-icon" src="img/icons-menu/timer.png">Timer</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/music.png">Background Music</span>
<span class="list-arrow">›</span>
</button>
</div>
</div>
</div>
</section>
<!-- JavaScript -->
<script type="text/javascript" src="js/bootstrap-native-v4.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script>
Turbolinks.start()
</script>
</body>
</html>
documentation for TurboLinks 说:
Turbolinks intercepts all clicks on <a href>
links to the same domain.
…但是你的HTML没有.
您有一些 <button>
元素,我猜您可能有一些 JavaScript 使它们像链接一样工作,但 TurboLinks 不会接收它们。
它确实有 mechanism for manually triggering TurboLinks,但您最好使用真实链接而不是按钮和 JavaScript。
刚开始使用 turbolinks,他们声称它可以在没有客户端 javascript 框架的情况下使用,我制作了一个 bootstrap 4 模板并尝试安装它。
从 repo 文件下载 .js 并包含在头部:
<script type="text/javascript" src="js/turbolinks.js"></script>
就在结束正文标签之前:
<script>
Turbolinks.start()
</script>
控制台调试没有报错,js加载了但是每次访问新的页面都会加载整个页面link.
试图在网络服务器中添加 var Turbolinks = require("turbolinks")
但出现错误。
Server.js
//jshint esversion:6
const express = require("express")
const app = express();
var Turbolinks = require("turbolinks")
app.get("/", function(req, res){
res.sendFile( __dirname + "/public/" + "index.html" );
});
app.use(express.static(__dirname + '/public'));
app.listen(3000, function(){
console.log("Server started on port 3000")
});
index.html
<!doctype html>
<html lang="en">
<head>
<link rel='icon' href='favicon.ico' type='image/x-icon' />
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css" type="text/css">
<link href="https://fonts.googleapis.com/css?family=IM+Fell+English|Lato:400,700&display=swap" rel="stylesheet">
<script src="https://kit.fontawesome.com/e5f3028323.js" crossorigin="anonymous"></script>
<script type="text/javascript" src="js/turbolinks.js"></script>
<title>App</title>
</head>
<body>
<section class="navbar sticky-top justify-content-between">
<span></span>
<div class="p-2 bd-highlight">CW App</div>
<button type="button" class="btn btn-nav">
<i class="fas fa-ellipsis-h"></i>
</button>
</section>
<div class="nav-bg"></div>
<section class="container">
<div class="row">
<div class="col d-flex justify-content-center cerca">
<form class="form-inline">
<input class="form-control form-control-search" type="search" placeholder="Search" aria-label="Search">
<button class="btn-cerca my-2 my-sm-0" type="submit"><i class="fa fa-search"></i></button>
</form>
</div>
</div>
</section>
<section class="container" data-turbolinks-permanent>
<div class="row">
<div class="col">
<div class="list-group list-button mx-auto">
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/rulebook.png">Rulebook</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/factions.png">Factions</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/neutrals.png">Neutrals</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/maps.png">Maps</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/dice.png">Dice Roll</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/randomizer.png">Game Randomizer</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/doom.png">Doom & Ritual Track</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center" onclick="window.location.href = './timer.html';">
<span><img class="menu-icon" src="img/icons-menu/timer.png">Timer</span>
<span class="list-arrow">›</span>
</button>
<button class="list-group-item d-flex justify-content-between align-items-center">
<span><img class="menu-icon" src="img/icons-menu/music.png">Background Music</span>
<span class="list-arrow">›</span>
</button>
</div>
</div>
</div>
</section>
<!-- JavaScript -->
<script type="text/javascript" src="js/bootstrap-native-v4.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script>
Turbolinks.start()
</script>
</body>
</html>
documentation for TurboLinks 说:
Turbolinks intercepts all clicks on
<a href>
links to the same domain.
…但是你的HTML没有.
您有一些 <button>
元素,我猜您可能有一些 JavaScript 使它们像链接一样工作,但 TurboLinks 不会接收它们。
它确实有 mechanism for manually triggering TurboLinks,但您最好使用真实链接而不是按钮和 JavaScript。