1

私はcodeigniterを使用しています。

私の製品ページには、私たちが持っているすべての製品が表示され、ユーザーは各product_nameをクリックして、その特定の製品の詳細を取得できます。したがって、製品をクラスとして宣言し、product_nameを製品クラス内の関数として宣言しました。これにより、URLwww.company.com/products/product_nameを取得できます。

www.company.com/productsにアクセスすると、すべて問題ありませんが、末尾にスラッシュを追加すると、www.company.com / products /のようになり、ロゴの下のウィンドウとメニューがその上に移動して、ロゴとメニューの両方が非表示になります。www.company.com/products/product_nameにアクセスしたときにも同じことが起こります。

末尾のスラッシュを追加したとき、またはproduct_nameページに移動したときに、下のウィンドウが非表示にならないようにするにはどうすればよいですか。

どんな助けでもいただければ幸いです。

4

1 に答える 1

2

問題は、画像の相対パスを指定したことです。それらを絶対にするか、少なくとも現在の場所に対して相対的にする必要があります。つまり、イメージパスを次のように変更した場合:

<img src="images/obsia.png">

<img src="/images/obsia.png">
or
<img src="http://www.obsia.com/images/obsia.png">

あなたの問題は解決されます。

これが発生する理由は、画像へのパスがベース URL によって決定されるためです。http://www.obsia.comまたはにいる場合http://www.obsia.com/products、ベース URL はhttp://www.obsia.comです。

ブラウザにimages/obsia.pngは としてレンダリングされhttp://www.obsia.com/image/obsia.png、サーバーはこれを解釈しwwwroot/images/obsia.png 、相対リンクが機能します。

ただし、http://www.obsia.com/products/ベース URL をhttp://www.obsia.com/productsにすると、画像の相対パスが からhttp://www.obsia.com/images/obsia.pngに変わりますhttp://www.obsia.com/products/images/obsia.png。サーバーはこれを と解釈しwwwroot/images/products/obsia.png、これを と解釈しますが、これは有効なパスではありません。サーバーは 404 を返します -- その結果、イメージが壊れます。

これは、Firebug の .Net パネルを使用すると確認できます。ロゴのリクエストは次を返します。

GET obsia.png
http://www.obsia.com/products/images/obsia.png

404 Not Found

obsia.com

539 B
于 2010-03-05T15:29:12.950 に答える