无法在角度2应用程序中提供图像

时间:2018-04-02 16:03:03

标签: node.js angular

我尝试显示保存在assets/img文件夹中的一张图片。

我这样做了:
<img src="../../../assets/img/login_fb.png" />

考虑到在app/auth/signin/mytemplate.html

中的模板中调用图像的事实

在我的angular-clir.json文件中,我有以下几行:

  "root": "src",
  "outDir": "../public/",
  "assets": [
    "assets",
    "favicon.ico"

提前感谢您的帮助

更新 05/04

我尝试在一个全新的角度项目中显示此图像,它可以正常工作。显然,在我现有的项目中存在导致问题的原因。 请注意,当我尝试通过网址直接访问图片时,我会重定向到我的角度应用程序的主页

我有一个棱角分明的护卫但是我没有在路线上使用我试图显示图像(图像在登录模板内)

export const APP_ROUTING: Route[] = [
    { path: '', component: HomepageComponent },
    { path: 'signup', component: SignupComponent },
    { path: 'signin', component: SigninComponent },
    { path: 'profile', canActivate: [AuthGuard], component: ProfileComponent }


];

服务器端我的app.js中也有这一行,但我不认为它可能导致问题不是吗?

app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, '../public/index.html'));
});

更新2:我的完整app.js

const express = require('express');
const path = require('path');
const logger = require('morgan');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const app = express();
const index = require('./routes/index');
const passport = require('passport');
const session = require('express-session');
const cors = require('cors');

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, '../public')));
app.use(passport.initialize());
app.use(passport.session());


mongoose.connect('mongodb://arn:blabla@ds227459.mlab.com:XXXXX/databasename', {
    keepAlive: true,
    reconnectTries: Number.MAX_VALUE
  }, function (error) {
    if (error) {
      console.log(error);
    } else {
      console.log('Connexion opened to mongodb!');
    }
});

//t
app.use(index);

app.use(cors({credentials: true, origin: true }));

app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, '../public/index.html'));
});

module.exports = app;

3 个答案:

答案 0 :(得分:3)

我终于找到了导致我问题的原因。很难找到,但角度项目位于一个文件夹中,其名称包含&#34; []&#34;字符。这似乎是个问题。我不知道为什么......?

答案 1 :(得分:0)

不确定您是否已尝试过此功能,但这对我有用:

<img src="../assets/img/login_fb.png">

答案 2 :(得分:0)

只需使用./assets/即可。

<img src="./assets/img/login_fb.png">