node.js - 静态文件未在生产中提供| 从任何文件夹
问题描述
当刚刚在我的本地主机上运行时,正在提供静态文件,但是,当部署到生产环境时,图像丢失了。
即使我测试将 png 图像部署到基本目录,该图像仍然在生产中丢失。所以不确定这是否只是代码配置的方式,或者是什么......丢失了
我得到图像的 200 状态,并且内容类型也与标题类型匹配
文件夹结构如下
Base Directory > public > icons
Base Directory > public > css > spreadsheet.css
Base directory > index.js
我的后端快递文件的相关部分如下:
const express = require('express')
const app = require('express')();
const { join } = require("path");
app.set('views', join(__dirname, 'views'));
app.use(express.static(join(__dirname, 'public')));
const port = 3000
var cookieParser = require('cookie-parser')
app.use(cookieParser())
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }))
app.use(cookieParser());
app.set('view engine', 'ejs');
ejs模板的相关部分:
<img class="image" src="/icons/<%= count.icon %> " width="25" height="25" />
有没有人经历过静态文件没有在产品中提供,尽管它们在哪个文件夹中?我觉得奇怪的是我的 CSS 正在我的公共文件夹中呈现,但图标却没有。
我正在通过 docker 映像进行部署,所以这也可能是 docker 问题吗?
docker镜像副本
FROM node:14.15.4-buster-slim@sha256:c8b73b9968457ee4969050955031efe0943d7770e38eeec2943debefd4d28cfd
RUN apt-get update \
&& apt-get install -y wget gnupg ca-certificates \
&& wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
&& apt-get update \
& apt-get install -y google-chrome-stable \
&& rm -rf /var/lib/apt/lists/* \
&& wget --quiet https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh -O /usr/sbin/wait-for-it.sh \
&& chmod +x /usr/sbin/wait-for-it.sh
ENV NODE_ENV="docker"
WORKDIR /
ADD ["package.json", "package-lock.json*", "./"]
RUN npm install
COPY . .
EXPOSE 3000
CMD [ "node", "index.js" ]
解决方案
推荐阅读
- swift - Empty() 发布者不发送完成
- regex - 如何为所有图像添加域
- javascript - 使用 HTTP Post(RESTful API)将请求从 React.JS 前端传递到 C# 后端(ASP.NET)
- php - 无法从表 php 中检索数据
- php - 使用 Klein PHP 访问路由参数
- sql - “case when”出错
- angular - Typescript(真的)是否遵循泛型中参数化类型(T、U、V、W)的命名约定?
- python - Django 错误:NoReverseMatch 在:我收到此错误
- tsql - SQL 检查信
- django - Django rest框架:序列化依赖于其他状态的额外字段?