2012-04-28 6 views
56

ジキルを使っているときに、他の人が個々のポストの資産をどのように整理しているのだろうと思っていました。たとえば、画像に画像がある場合は、共有画像フォルダにその画像をダンプするだけですか?私はこれをやるというのは本当に好きではありません。画像が投稿と完全に分離されていることを意味します。ジキルを使ったローカルポスト資産

答えて

21

イメージは、ゼロ個以上のページに含まれるスタンドアローンのアセットとして考えることを好みます。ほとんどの場合、私の画像は1ページに表示されます。私はそれらを複数のページに入れたいときや、画像をまったくリンクしない場合もあります。あなたのワークフローが各画像を投稿付きのディレクトリに置くのであれば、それらを見つけるにはかなりの量の検索が必要になり、特定の投稿に属さない画像では何か別のものを考え出す必要があります。

私が使用するアプローチは、スペクトルの反対側です。私は "/ images"から提供される単一のイメージディレクトリを持っており、私のイメージの100%はそこに格納されています。

  1. 画像を投稿に追加するときに、どのパスを使用するのかがわかりやすいです。常にそうです:

    /images/{image-name} 
    

    たとえば、http://alanwsmith.com/i/aws-20111017--0906-02です。これによりプラグインを作成することができるので、入力する必要があるのはイメージ名であり、残りの既知のパスは自動的に記入されます。

  2. Photo Mechanicのようなアプリケーションを使用すると、単一のディレクトリをローカルでブラウズしてすべての画像を見ることは非常に簡単です。別のページに画像を含めるには、これで検索時間が大幅に短縮されます。

  3. イメージを実際にページに含めることなく(イメージファイルへの直接リンクを送信して)誰かに送信する場合は、別の場所/プロセスはありません。私は標準のディレクトリに画像を投げ、直接リンクを送信します。

さらに高度な機能を使いたい場合は、すべての画像を1つのディレクトリに保存することもできます。たとえば、私のイメージのURLが「/ images」で始まっていても、イメージは実際にジキルが使うものの外のディレクトリに保存されます。私の場合、私のソースツリーの最上部には、次のようになります。

./html 
./source-files 
./image-files 

私の画像はすべて、「./image-files」ディレクトリに格納されています。私のApacheの設定では、URL "/ images"が "./image-files"ディレクトリを指すようにエイリアスを設定しました。私はジキルを実行すると

Alias /images /webroot/image-files 

が、それは「./source-files」ですべてを処理し、「./html」で、それをドロップします。たとえば。すべての画像がその2つのディレクトリの外にあるので、ジキルはそれらを見たり触れたりしません。画像ライブラリが大きくなるにつれて、処理が高速化され、膨大な量の不要なファイルのコピーが防止されます。私は、Apacheに好き

別の微調整がオンにされています

Options +MultiViews 

これは、あなたがなどのファイルの拡張子(例:なし「.JPG」、「.PNG」を、使用することなく、あなたのイメージを呼び出すことができます。.. )。上に示した例のリンクで見ることができます。パフォーマンスに関してはそれほど重要ではありません。私はちょうどそれが見える方法が好きで、イメージを呼び出すたびに拡張子を入力する必要がなくなります。

MultiViewsでは、あるフォーマットのイメージを他のものを再コードすることなく別のフォーマットに置き換えることもできます。たとえば、「some-image.gif」を削除して「some-image.png」と置き換えると、HTMLに触れる必要はありません。それでも、 "/ images/some-image"という形で提供されます。そのような変更を加える必要性はおそらく非常にまれです。私はちょうどそれができることが興味深いものだと思う。

最後に、画像ディレクトリの閲覧を許可または禁止するかどうかについて1つの決定を下すことができます。個人的には、自分が置いた場所に画像を表示したいだけです。だから、私は私のimagesディレクトリに.htaccessファイルを設定している:あなたは、数千または数十ページや画像の何千もの多くとサイト上で作業をしようとしている場合は

Options -Indexes 

、これはスケールしない場合があります。通常のサイズの個人用サイトでは、この方法で画像を簡単に保つことができます。

+0

なぜこれが受け入れ答えているのですか?これは、共同配置する方法に関する技術的なガイダンスを提供しません。私はこの答えのユースケースに同意しますが、私はブログ投稿の外で一般的に共有するつもりはない画像もあります。そのような場合、私は自分の画像フォルダを乱雑にしたくありません。 – ianstarz

+1

@ianstarz - 人の画像をどのように扱うのかという質問の最初の部分に答えていただけでした。その質問をした人は、最初に彼らが単一のフォルダに画像を置くという考えを好まないと述べたが、明らかに彼らの心を変えた。自分のディレクトリツリーに画像を保存することで懸念されていたことが分かりました(たとえば、サブディレクトリも持つことができます)。しかし、それはすべてSamRaynerのhttps://stackoverflow.com/a/19635916/102401のような個人的な好みやオプションは完全に合法です。 –

0

JavaScriptとCSSの場合、アセットパイプラインを考慮する必要があります。バンドリングと圧縮を使用すると、パフォーマンスが向上します。 CoffeeScriptとSassも使用していますので、私の資産を変換するためのプリプロセッサが必要でした。 jekyllコマンドを実行すると、このプロセス全体を自動的に管理するためにJekyll Asset Pipelineを使用します。

画像/ビデオについては、プロジェクトのフォルダの命名規則を開発することをお勧めします。私は一般的に "資産"フォルダを持って、それらの投稿に関連する画像を保持する各投稿の日付をサブフォルダにします。 1日に複数の投稿がある場合は、投稿の名前を含めることを検討することがあります。

21

私は私は簡単にサブディレクトリ内の資産を整理できるようにするプラグインを書いた:ページ内の

​​

:ポスト2013年1月1日 - ポストタイトルだろう出力で
https://github.com/samrayner/jekyll-asset-path-plugin

{% asset_path my-image.png %} 

最初のページが出力されます:

/assets/my-first-page/my-image.png 
6

あなたのように、私は本当にすべての画像を1つの共有フォルダに入れることが嫌です。

私の画像の、ほとんど、すべてではないが、1つのポストに有用である、と値下げファイルと一緒にそれらを維持することはポストの管理のための本当に良いです:

  • 私は1つのサブとして新しいポストをドロップすることができます - /_posts/のフォルダを1つの場所に置くことなく、マークアップを別の場所に置くことなく、画像を別の場所に置くことができます
  • 既存の投稿の画像を編集したいときは、巨大な/assets/フォルダの右のイメージは、Markdownファイルのすぐ近くにあります
  • 私のMarkdownでは、彼は、任意のパス
  • せずに直接画像ファイル名を、私はライブプレビューで任意のマークダウンエディタを使用する場合、それは動作しますが、特定の資産フォルダの設定は必要ありません

私は私のブログのためにこれを持ってしようとしました( example post here)。

レスポンシブな画像の場合、Jekyll Picture Tag pluginを使用しましたが、そのようなパスを処理するthe Pull Requestが受け入れられなかったので、私はそれをフォークしなければなりませんでした。

ジキル3はそこにあります。ポストフォルダと/assets/の両方で画像を使用して、両方で![alt](image-file-without-path.jpg)というマークの付いた画像を探してみましょう。私は今、値下げファイルと一緒にポストの資産を保つことができますジキルプラグインを開発するために管理している