2017-10-23 8 views
0

私は公共のディレクトリにファイルをアップロードしようとしています動的に追加したファイルは、ブラウザからアクセスすることはできません - 流星のアプリケーション

(web.browser /アプリ)

とアクセスしようとしbrowser.But上のファイルは、実行時に追加されたファイルを提供しません。

しかし、パブリックディレクトリに静的ファイルを追加し、アプリケーションを構築してデプロイしました。静的ファイルはブラウザからアクセスできます。

は、いくつかの研究の後、私は公共の内のファイルへのパスとURLマッピングを持ってい

(ないローカル サーバーでは、開発サーバーで)web.broswer内

program.jsonに出くわしましたディレクトリ(web.browser/app /)。

私の質問は、program.jsonがパブリックディレクトリ(web.browser/app /)内のすべてのファイルにアクセスできるように設定する方法です。パブリックディレクトリ内の動的に追加されたファイルにアクセスする他の方法はありますか?私はS3のような第三者のストレージを使わないようにしようとしています。パブリックディレクトリ(web.browser/app /)から静的ファイルを提供するために別のサーバを実行したくありません。

答えて

0

アップロードされたファイルをシステムのtmpフォルダに保存し、nginxで配信すると、この問題が解決されます。

+0

それは合理的な解決策かもしれませんが、「流星」ではありません。 –

+0

はい、それは流星ではありませんが、余分な費用はかからないので、まだ良い方法です:) – AnoopGoudar

2

meteorは実際にコンパイル時に静的資産を含んでおり、これらのルートを手動で追加するため、publicフォルダに動的に追加されたリソースを処理することはできません。さらに、Meteorはプロジェクトフォルダ内で実際には実行されませんが、実際には.meteor/localにあるため、最初にこれらのファイルをどこに見つけるかわかりません。

溶液については、この質問のためにprevious answerがありますが、それはもはやそれがもうこれ以上最善の方法ではないと私は考えています。 Pickerには、expressミドルウェアを使用できる優れた機能があります。 Express static middlewareを静的ファイルを扱うのに簡単に使うことができるので、これら2つを組み合わせることによって、ディレクトリの内容を動的に提供できるはずです。

+0

私はファイルを.meteor/local内に格納していましたが、デプロイメント後には.meteor/localの中にあるweb.browserを指していました。 そして、ファイルをアップロードしたり取得したりするために流星で紹介することは望ましくありません。 – AnoopGoudar

+0

@AnoopGoudar残念ながら、実際には他の方法はありません。 Meteorにはデフォルトでサーバー側のルーティングがないため、これを実行するためにいくつかの機能を追加する必要があります。情報のおかげで –

+0

ありがとうございます。 – AnoopGoudar

関連する問題