2017-07-18 4 views
0

このビルドにはAngular-Cliを使用していますが、srcフォルダの下にあるすべてのフォルダをビルドにコンパイルします。 私はSRCの下で資産のフォルダ内の画像を保存した角2+ストアとアクセスの動的イメージライブラリ

src |-app |-assets |-img_library

私はこのように動的にアクセスします。 <img src="assets/img_library/{{imgId}}"

残念ながら、このフォルダは、角度のCLIにより、ビルドにコンパイルされるので、私は希望クライアントがアクセスできるように画像が追加されるたびにアプリを再構築する必要があります。

私は好きな場所に画像を保存できますが、タグでsrcの上のフォルダにアクセスする方法はわかりません。

srcフォルダの上のpublic/assetsフォルダに、画像タグがAngular?でアクセスする方法はありますか?

+0

これは意味がありません。もしあなたが 'src /'の外にあるアセットフォルダにアクセスするならば、それをインクルードする必要があります。代わりに、アプリケーションを分割する - リンクのリストを返すシンプルなAPIや何かを*どこでも*(同じサーバー、別のサーバー、S3、CDN、...)でも使えるようにしてください。 – jonrsharpe

+0

私のsrcフォルダの上に格納されたフォルダにアクセスする方法がある場合、ビルドにコンパイルされないため、再構築する必要はありません。 imageタグを使って画像にアクセスするapiをビルドすると、ブルドーザーを使ってアリの丘をノックするように見えます。そのため、従来のWeb開発では、これらの資産を保持するためのパブリックフォルダが必要でした。 – Nayfin

+0

ビルドにコンパイルされていないのは解決策ではなく、*問題*です。デプロイ時に正しい場所にいることをどのように確認しますか?そして、アプリは画像をどのように発見するのですか? – jonrsharpe

答えて

1

@jonrsharpeこれは意味をなさないでしょう。アセットフォルダは、ほとんどのユーザーが頻繁に使用する画像/メディア用です。私は何を考えているのか分からず、バックエンドからアプローチする必要があるときに、私の脳は角度モードで詰まっていました。

私は特急のAPIを使用:<img src='some/api/{{imageId}}/img.png'>からget要求に応答する

router.get('/some/api/:id/img.png', function(req, res, next){ 

    var id = req.params.id, 
     filePath = 'img.png', 
     root = __dirname + '/some/location/' + id +'/'; 

    var options = { 
     root: root, 
     dotfiles: 'deny', 
     headers: { 
      'x-timestamp': Date.now(), 
      'x-sent': true 
     } 
    }; 

    res.sendFile(filePath, options, (err) => { 
     if (err) { 
      next(err); 
     } else { 
      console.log('Sent:', filePath); 
     } 
    }); 
}) 

を。

これは、他の睡眠不足の開発者に役立ちます。

関連する問題