为什么我的徽标不显示Node.js应用

时间:2018-06-29 14:08:47

标签: node.js express

这是我的项目目录的图片。

enter image description here

我的徽标在template / assets / logo.png中。

在我的server.ts文件中,我使用中间件express作为app.use(express.static(“ template”));

很遗憾,当我尝试在html文件中显示徽标时,它不会显示。

 <img src="assets/logo.png" alt="Logo">

这是我的server.ts文件:

// Import everything from express and assign it to the express variable
import  express from 'express';
import fs from 'fs';
// Import WelcomeController from controllers entry point
import {WelcomeController} from './app/controllers';

// Create a new express application instance
const app: express.Application = express();



// The port the express app will listen on
const port: any = process.env.PORT || 3000;

// Template folder
app.use( express.static( "template" ) );

// Mount the WelcomeController at the /welcome route
app.use('/', WelcomeController);


// Serve the application at the given port
app.listen(port, () => {

    const source = fs.createReadStream('/src/app');
    const dest = fs.createWriteStream('/dist');


    source.pipe(dest);
    source.on('end', function() { /* copied */ });
    source.on('error', function(err) { /* error */ });
    // Success callback
    console.log(`Listening at http://localhost:${port}/`);
});

用显示文件的方式显示模板的方式是什么?

2 个答案:

答案 0 :(得分:1)

我做错了这个app.use( express.static( "template" ) );

我应该做app.use(express.static(__dirname + '/app/template'));

答案 1 :(得分:1)

我认为您需要先定义根目录,然后再导入资产(至少有帮助!)。

因此,如果您导入express,然后将express()分配给变量,例如

 var express = require express(); 
 var app = express;

然后您可以执行以下操作:

var root = require('path').join(__dirname,'/template');
app.use(express.static(root));

一旦定义了根,引用URL时将从该位置调用所有其他文件。

希望这会有所帮助