这是我的项目目录的图片。
我的徽标在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}/`);
});
用显示文件的方式显示模板的方式是什么?
答案 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时将从该位置调用所有其他文件。
希望这会有所帮助