2017-03-27 8 views
1

HTMLは複数のファイルに分割することをサポートしていますか?私はC++の同等のものを探しています#include; C#のpartialのようなものかもしれません。ソースパスをとり、ファイルの内容をその場所に注入できる要素。htmlソースを複数のファイルに分割する

これまでに尋ねられた場合はお詫び申し上げます。 GoogleとSOの検索はあまり戻ってこなかった。私はウェブの人ではありませんが、私が見つけた唯一の解決策は、多くの人がさまざまな理由で好きではないiframeを使用していたことです。

私のHTMLソースは巨大になり、複数のファイルに分割して管理したいと思っています。

+1

あなたが求めているのかどうかはわかりませんが、これを参照してください。 https://www.w3schools.com/howto/howto_html_include.asp – marmeladze

+1

残念ながら、これはHTML仕様の一部ではありませんが、この機能を提供する多くのサーバー側ツールとクライアント側ツールがあります。 – 4castle

+0

@marmeladze:私が理解する限り、それはカスタムソリューションですが、面白いようです。 – dotNET

答えて

1

あなたがPHPを実行している場合には、容易に可能である:

PHP言語で構築されたコマンド「を含む」がある したがって、あなたの「index.phpを」を持つことができます(注意サフィックスを変更する必要があります。 PHPパーサーがキックインするため)、次の構文を使用するだけです。

<html> 
    <head> 
    [...] (header content you want to set or use) 
    </head> 
    <body> 
    <?php 
     include "relative/path/to/your/firstfile.html"; 
     include "relative/path/to/your/secondfile.html"; 
     include "relative/path/to/your/evenwithothersuffix/thirdfile.php"; 
     include "relative/path/to/your/fourth/file/in/another/folder.html"; 
    ?> 
    [...] (other source code you whish to use in the HTML body part) 
    </body> 
</html> 

は基本的にメインのindex.phpファイルコンテナファイルと付属のhtmlを作るあなたが別々に維持したいコンポーネントを、ファイル。

さらに読むために、私はPHP ManualW3Schools Includeページをお勧めします。

+0

これは私の現在の状況ではうまく動作しますが、HTMLのみの環境ではうまく動作しません。私たちがもっと良いものを手に入れなければ、これを答えにします。 – dotNET

0

フラットなHTMLではできません。あなたができることはJavascriptを使ってスニペットを読み込んで配置することです。 iframeはまた、#includepartialのようなディレクティブで何が起こるのかとは対照的に、これらのスニペットは決して1つのページにコンパイルされないため、理想的ではありません。

ただし、ページの配信方法を理解することが重要です。これは静的なウェブサイトですか?この場合、私はあなたの言語でページをコンパイルするための簡単なスクリプトを書くでしょう。あなたはこのような基盤を持っているとしましょう:

<html> 
    <head> 
     <!-- ... --> 
    </head> 

    <body> 
     {{ parts/navigation.html }} 
     <!-- ... --> 
    </body> 
</html> 

あなたはラインによって、このファイルの行を通ると、たとえば、compiled_htmlのために、という名前の変数にコンテンツをロードするスクリプトを書くことができます。 {{ file }}が見つかるとfileが開き、内容が読み取られてcompiled_htmlに追加されます。最後になると、変数の内容がHTMLファイルに書き込まれます。実装方法は、あなたが知っている言語によって異なります。私はそれがC#でそれを行うのはかなり簡単だと確信しています。

このようにして、HTMLページのソースを複数のファイルに分割して、必要に応じていくつかの部分を再利用することができますが、完全に機能する単一のファイルで終了します。

+0

これは、Julianの答えがコードを必要とするのと同じように、HTMLのみの状況では動作しません。 – dotNET

+0

これは、同じ問題に対する2つの非常に異なるアプローチです。静的なHTMLページを複数のファイルに分割するように求めているので、その場でページを変更する必要はありません。 PHPや他のサーバ側言語を使っていくつかのファイルをインクルードするだけでは、ページがリクエストされるたびにPHPインタプリタが呼び出されるので、残念です。その場でページを変更する必要がある場合は、より良いアプローチがあります。 しかし、私が示唆しているのは、サーバー側の解決策ではないということです。あなたはあなたのファイルを一度コンパイルし、あなたの静的なファイルをアップロードし、その後も幸せに生きるでしょう。 – paratassi

+1

ああ、私はちょうどあなたの答えを読んだ。私はそれが実行可能な解決策だとは思わない。静的なHTMLの状況、特に設計時には、編集のたびにこれらのファイルをカスタムユーティリティで渡し、見た目だけを見たいという人はいません。面倒であるだけでなく、HTMLデザイナーの設計時サポートを抹消します。これが本当に最後の選択肢だったならば、@ marmeladzeの 'w3-data'を使うことの提案ははるかに管理しやすくなります。おかげさまで – dotNET

関連する問題