在 heroku 应用程序中以 express 方式提供静态文件
Serving static files in express in heroku app
我有 两个 svelte (SPA) 应用程序 - 一个用于管理员,一个用于 public,我正在尝试用一个 express 为它们提供服务服务器。
当我 运行 这段代码在我的本地主机上时它工作正常,但在 heroku 中我在管理页面的静态文件上得到 404(客户端应用程序很好)。
我的项目结构:
server.js
client
public
build
bundle
client
public
build
bundle
这是我的 html 产生无效调用的页面
<head>
<link rel='icon' type='image/png' href='/favicon.png'>
<link rel='stylesheet' href='/admin/global.css'>
<link rel='stylesheet' href='/admin/build/bundle.css'>
<script defer src='/admin/build/bundle.js'></script>
</head>
这是我的快速路线:
app.get('/admin', utils.ensureToken, (req, res, next) => {
app.use(express.static(path.join(__dirname, 'admin/public')));
res.sendFile(path.resolve('admin', 'public', 'index.html'));
});
app.get('/', (req, res) => {
res.sendFile(path.resolve('client', 'public', 'index.html'));
});
app.use('/admin', express.static(path.join(__dirname, 'admin/public')));
app.use(express.static(path.join(__dirname, 'client/public')));
尝试在 express 上混合路径,但似乎没有用。提前致谢。
最后是 package.json 出了问题。
忘记了脚本 "heroku-postbuild" 还需要 运行 "admin" npm 启动。
我有 两个 svelte (SPA) 应用程序 - 一个用于管理员,一个用于 public,我正在尝试用一个 express 为它们提供服务服务器。 当我 运行 这段代码在我的本地主机上时它工作正常,但在 heroku 中我在管理页面的静态文件上得到 404(客户端应用程序很好)。
我的项目结构:
server.js
client
public
build
bundle
client
public
build
bundle
这是我的 html 产生无效调用的页面
<head>
<link rel='icon' type='image/png' href='/favicon.png'>
<link rel='stylesheet' href='/admin/global.css'>
<link rel='stylesheet' href='/admin/build/bundle.css'>
<script defer src='/admin/build/bundle.js'></script>
</head>
这是我的快速路线:
app.get('/admin', utils.ensureToken, (req, res, next) => {
app.use(express.static(path.join(__dirname, 'admin/public')));
res.sendFile(path.resolve('admin', 'public', 'index.html'));
});
app.get('/', (req, res) => {
res.sendFile(path.resolve('client', 'public', 'index.html'));
});
app.use('/admin', express.static(path.join(__dirname, 'admin/public')));
app.use(express.static(path.join(__dirname, 'client/public')));
尝试在 express 上混合路径,但似乎没有用。提前致谢。
最后是 package.json 出了问题。 忘记了脚本 "heroku-postbuild" 还需要 运行 "admin" npm 启动。