2014-01-16 15 views
19

私は最近、流星のプライベートサブディレクトリを認識しました。ドキュメントによると、「プライベートサブディレクトリは、サーバーコードにアクセスできるはずのプライベートデータファイルのように、クライアントには提供されないファイルの場所です」私は一般的なWeb開発の初心者です。私の質問は、プライベートサブディレクトリ内にこれらのファイルを置く利点と、サーバーのサブディレクトリ自体にあるのは何ですか?サーバーのサブディレクトリは非公開ではありませんか?いくつかの電子メールテンプレートが定義されていて、メールのログイン情報がサーバーのサブディレクトリのスタートアップ機能に設定されていますが、どういうわけかクライアントに公開されていますか?すべての明確化は非常に役立つ、ありがとう!流星専用サブディレクトリ

答えて

33

いいえ、サーバーディレクトリのコードは安全です。違いは、これらのファイルの使用方法とアクセス方法です。サーバーディレクトリのファイルはサーバー上でロード/実行され、実行中のアプリケーションのファイルシステムを使用してアクセスすることも困難です。 privateディレクトリにあるファイルのコンテンツは、アセットとしてご利用いただけます。詳細については、http://docs.meteor.com/#assetsを参照してください。

サーバーコードはサーバーディレクトリでは実行されませんが、現在の作業ディレクトリは.meteor内の一時ビルドディレクトリです。したがって、サーバディレクトリ内のファイルを読むために、たとえばfsノードパッケージを使用する場合は、まずそれを見つける必要があります。さらに、サーバーディレクトリの新しいファイルやファイルの変更によって、流星が誘発されてアプリが再起動されます。あなたがそれを望まないシナリオがあります。したがって、privateは、アプリケーションの実行に影響を与えないファイルを処理する場所を提供します。

もう1つの考え方は、privateはサーバーのためのもので、publicはクライアント用です。

+0

ありがとうございました! – user2635787

+0

サーバー側の方法(およびfsノードパッケージ)を使用して、ディレクトリーを作成するか、「private」ディレクトリー(たとえば、application-name/private/files/users/user-name/file.pdf)私のアプリケーションはいつも再開します - 私はこれが 'プライベート'ディレクトリで起こるとは思っていませんでしたか? – Aaron

+0

ここに私のこの問題に関する質問があります:http://stackoverflow.com/questions/28105957/meteor-and-the-private-directory?noredirect=1#comment44597955_28105957 – Aaron