首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速静态文件服务配置

快速静态文件服务配置
EN

Stack Overflow用户
提问于 2018-12-09 18:25:21
回答 3查看 1.2K关注 0票数 3

我正在尝试提供来自快递服务器的静态资产,该服务器碰巧安装了阿波罗服务器,但这是一个与express.static配置相关的问题。这是我的文件夹结构的截图

这是快速配置的代码。它位于/config/app.js内部

代码语言:javascript
复制
import express from 'express';
import bodyParser from 'body-parser';
import morgan from 'morgan';
import cookieParser from 'cookie-parser';
import cors from 'cors';
import path from 'path';

const PORT = process.env.PORT || 3001;
const environment = process.env.NODE_ENV || 'development';
const loggingType = environment === 'development' ? 'dev' : 'tiny';

const app = express();
app.use(
  bodyParser.json({ limit: 1024 * 1024 * 2000, type: 'application/json' })
);
app.use(morgan(loggingType));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, './assets/images')));

export default app;

如果我试图访问localhost:3001/映像,上面写着Cannot get /images

我做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-10 06:40:15

请试用以下方法:

代码语言:javascript
复制
app.use(‘/assets’, express.static(path.join(__dirname, '..', ‘assets’)));

根据目录结构将参数更改为path.join

票数 5
EN

Stack Overflow用户

发布于 2018-12-09 20:57:24

__dirname表示当前模块的目录名。您应该使用‘./assets/映像’作为图像的静态路径。

试图访问localhost:3001/映像返回一个错误,因为它是一个静态目录,而不是文件。访问本地主机:3001/映像/test.png应该可以工作。

但是首先,您需要定义静态目录。而不是:

代码语言:javascript
复制
app.use(express.static(path.join(__dirname, './assets/images')));

做:

代码语言:javascript
复制
app.use('/images', express.static(path.join(__dirname, '..', '/assets/images')));

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2018-12-10 12:17:44

您可以以另一种方式使用static函数:

app.use('/', express.static('assets'));

...and调用图像如下所示:

<img src='/images/logo.png'>

我希望这能帮到你。

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

https://stackoverflow.com/questions/53695363

复制
相关文章

相似问题

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