2017-10-04 113 views
0

我似乎很好,从我的app.js文件到主ejs文件呈现图像,但是当我将它更改为背景图像时,它不显示。任何想法是什么?将背景图像添加到EJS文件

我app.js

const express = require("express"), 
    app  = express(), 
    bodyParser = require("body-parser"), 
    jade = require("jade"), 
    path = require('path'), 
    redis = require('redis'); 
    images = [{image:"http://nuvotera.com/wp-content/uploads/2013/10/email-protection-banner-2.jpg"}]; 

app.use(bodyParser.urlencoded({extended:true})); 
app.set("view engine", "ejs"); 

//render email page 
app.get("/email", function(req, res){ 
    res.render("emailMain", {image:images}); 
}); 

app.listen(3000, function(){ 
console.log("Email Server has started"); 
}); 

从EJS页面

<tr> 
<% for(var i=0; i < images.length; i++){ %> 

    <td class="vmlHero" background = "<%= images.image %>" style="background-repeat:no-repeat" bgcolor="#000000" width="100%" height="430" valign="top"> 
+0

'res.render(“emailMain”,{image:images});'你的意思是'res.render(“emailMain”,{images:images});'' – Keith

回答

0

此:

app.get("/email", function(req, res){ 
    res.render("emailMain", {image:images}); 
}); 

应该是这样的:

app.get("/email", function(req, res){ 
    res.render("emailMain", {images: images}); 
}); 

请注意额外s

此外,您没有使用可变i这里:

<tr> 
<% for(var i=0; i < images.length; i++){ %> 

    <td class="vmlHero" background = "<%= images.image %>" style="background-repeat:no-repeat" bgcolor="#000000" width="100%" height="430" valign="top"> 

我认为这应该是<%= images[i].image %>,或只使用一个forEach代替。

另外值得一提的是,中tdbackground属性已被弃用,你可以使用background-image或风格background达到同样的效果。

0

在你app.js改变

res.render("emailMain", {image:images}); 

要:

res.render("emailMain", {images:images}); 

而在你.ejs文件更改

background="<%= images.image %>" 

要:

background="<%= images[i].image %>"