0

サーバーサイドインクルードを長年使用しているページがあります。最近、それが機能しなくなりました。ページに変更はありません

<!--#include virtual="..\..\includes\nav.include" -->

contact.html というページの下部付近

「nav.include」ページには、ナビゲーション バーの HTML が含まれているだけです。ジャバスクリプトなし。サーバー側のスクリプトはありません。ただのhtml。

ここで実装されている方法で SSI を機能させるために設定する必要がある設定がどこかにありますか (html ファイル内の一般的ではない拡張子を持つファイルを含む)?

4

7 に答える 7

1

GoDaddy を使用していますか? 彼らは私のサイトにも同じことをしました.彼らのフォーラムで、インクルード仮想の代わりにインクルードファイルを使用すると言った人を見つけました.

于 2013-06-19T00:10:30.737 に答える
1

昨日発見した解決策:

  1. すべてのページを複製して名前を .php に変更しました (念のため元の html ファイルを保持しました!)
  2. {<#include virtual="folder_name/file_name.ext" -->} をすべて置き換えました

        <?php include "folder_name/file_name.ext" ; ?> 
    

    ページがフォルダー階層のどこにあるかに応じて、適切な数のドットとスラッシュを使用します。(上記の {} は、コードのみをマークするためのものです)

  3. 最後に、元の index.html の名前を別の名前に変更して、index.html の代わりに index.php が選択されるようにしました。

これはうまくいっているようです - 私はまだすべてのページとリンクをテストしています - 非常に退屈で時間のかかる作業です!

構文が含まれます:

phpファイルで使用

    <?php include "..//folder_name/file_name.ext" ; ?>

htmlファイルで使用

    <!--#include virtual="../folder_name/file_name.ext" -->

上記の構文で「...」の数と「///」の数を試して、正しい組み合わせを取得してください!!!!

  1. 私にとって、すべてのインクルードは、webroot の直下にあるフォルダー ABC 内の小さな html ファイルです。
  2. ABC の兄弟フォルダー、つまり webroot の直下の他のフォルダーにあるページの場合、「..//」は機能するドットとスラッシュの数です。
  3. ウェブルートに直接あるページ (つまり、ウェブルート内のどのフォルダーにもないページ) では、ドットやスラッシュを含まない folder_name/file_name.ext が機能します。
  4. 階層内の他のレベルに必要なドットとダッシュの数をチェックする時間がありませんでした!

これが役立つことを願っています!

于 2013-06-21T06:42:14.757 に答える
0

GoDaddy がホストするサイトで、この問題が頻繁に発生します。サーバー構成ページに移動し、SSI を無効にし、設定を保存してから、SSI を再度有効にし、[.HTM および .HTML ファイルで SSI を使用する] をオンにすると、再び機能し始めます。

問題は GoDaddy 側にあります。何らかの理由で、そのオプションをオフにしてからオンにするまで、ファイル内の SSI を解析する必要があることを忘れています。彼らのTier-2サポートは、インクルードコマンドでファイルの代わりに仮想を使用することを提案しただけです...これはばかげています。それは物事を変えないだけでなく、SSIインクルードはほとんどの場合うまく機能します...それが変わるまで」 t。

于 2014-05-12T01:41:41.260 に答える