【问题标题】:images not rendering in production图像未在生产中渲染
【发布时间】:2021-06-05 20:08:41
【问题描述】:

我已经通过 docker 文件将我的 node.js express 应用程序部署到生产环境,但是,图像没有被渲染,浏览器标准占位符图像正在代替这些图像被渲染。

为了让我的应用呈现这些图像,我做错了什么吗?我需要包含一段代码吗?

我的文件结构如下

  • 基本目录>公共>图标
  • 基础目录> index.js

我的index.js 服务器文件的相关部分

 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());
    
    process.env.NODE_ENV === 'production'
    
    
    
    app.set('view engine', 'ejs');
    
    app.get('/',(req,res)=>{
      res.render('index',{
          data: 'name'
      })
    })

这是我尝试打开图像文件时收到的错误消息

ejs 文件:

<% data.countries.forEach(function(count){ %>
 

       
    <div class="flex">
      <div class="template">
              <div class=“Country>
                  <img class="img" src="/icons/<%= count.icon %> " width="25" height="25"  />  <%= count.name %> 
                </div>
      
              <div class ="Category">
    
                <%= count.categories.map(cat=>cat.name).join(' | ') %>
              </div>
              
       </div>
    </div>
      
      
      
    
        <% }); %>

【问题讨论】:

  • 您好,请给我们看看您的index.ejs文件,谢谢
  • @FelixFong 已添加到问题中

标签: node.js


【解决方案1】:

你可以直接通过他的路径打开文件吗?

【讨论】:

  • 已添加到问题中
  • 您可以将 cmets 留在这里而不是编辑您的答案....但是打开图标链接指向错误...不确定您的意思
【解决方案2】:

一个可能的答案是因为在您的 EJS 文件中,您的图像指向一个类似于 /icons/HK.png 的 URL,但您的 ExpressJS 公共路径设置为 /public,此处不可用:

app.use(express.static(join(__dirname, 'public')));

因此,一种可能的解决方案是通过添加以下代码为您的图标集添加一个新的公共路径:

app.use('/icons', express.static(join(__dirname, '/public/icons')))

【讨论】:

  • 我不想让服务器访问所有公用文件夹吗?
  • 抱歉,你从哪里得到images
  • 1) 对不起/public/images 的事情,这是我的错误,我更新了我的代码。 2)您不是对整个公共目录的完全访问权限,如果流量来自/icons 路由,您仅授予对图标目录的公共访问权限
  • 但是我的 CSS 也在我的公共目录中,所以我在直播时丢失了它
猜你喜欢
  • 2020-03-17
  • 1970-01-01
  • 1970-01-01
  • 2022-08-03
  • 2016-08-24
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多