首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Node.js + Express最简单的SPA示例

Node.js + Express最简单的SPA示例
EN

Stack Overflow用户
提问于 2017-10-24 08:21:45
回答 1查看 2K关注 0票数 0

我想让一个小小的SPA应用程序发挥作用。

我的应用程序文件夹中有以下结构:

代码语言:javascript
运行
复制
/about.html
/index.html
/index.js

index.js:

代码语言:javascript
运行
复制
const express = require('express');
const app = express();
const path = require('path');

const staticHref = '/static';
const publicFolder = path.join(__dirname, '/');

app.use(staticHref, express.static(publicFolder));
app.use(staticHref, function(req, res) {
    res.send(404);
});

app.all('/*', function(req, res) {
    res.sendFile('index.html', {root: publicFolder});
});

app.listen(3000, function(){
    console.log('running');
});

index.html:

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
<head>
    <title>Homepage</title>
</head>
<body>
<h1>Homepage</h1>
<a href="/static/about">About</a>
</body>
</html>

about.html:

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
<head>
    <title>About Us</title>
</head>
<body>
<h1>About Us</h1>
<a href="/static">Home</a>
</body>
</html>

当我去http://localhost:3000/static/的时候,它会显示我的主页。但是,当我单击about链接时,它会在http://localhost:3000/static/about上抛出404

我怎样才能解决这个问题?我想把它作为SPA使用(所以在浏览页面时不需要刷新)。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-24 08:43:12

这不是SPA,您有多个静态页面,基本上是将所有请求发送到您的index页面,不允许用户访问任何其他静态页面,比如about

您需要研究SPA以及它们是如何工作的,因为它们不是这样配置的。您可以使用JavaScript框架(反应、角度等)。要做到这一点,可以在客户端或服务器端进行路由匹配。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46905508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档