0

CodeIgniterのインストールに少し奇妙な問題があります。たとえば、APIページがある場合、URLを短くするためにmodrewriteを使用しています。

http://www.mydomain.com/api

そしてそれは本当にうまく機能します、私の.htaccessファイルは次のようになります:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

しかし、本当に奇妙なのは、末尾にスラッシュを入力した場合です。

http://www.mydomain.com/api/

APIページは正常に読み込まれますが、すべてのページに含まれているベースCSSファイルが含まれていません。何も読み込まれなくても問題ありませんが、実際のAPIページの読み込みを停止する必要があります。どんなアドバイスも役に立ちます、

ありがとう!

更新:ソースを表示すると、CSSが正しく読み込まれると、CSSファイルは次のファイルから取得されることがわかりました。

http://www.mydomain.com/css/all.css

しかし、それがロードに失敗したとき、それはから来ます

http://www.mydomain.com/api/css/all.css

4

2 に答える 2

1

css/all.cssまたは(両方とも同等)のような相対URLパスを使用する場合、相対URLパス(他の相対URLと同様)は、特に指定されていない限り、現在のドキュメントのURLであるベースURLを使用して解決さ./css/all.cssれることに注意する必要があります。

したがって、あなたの場合/api/api/またははベースURLパスであり、相対URLパスcss/all.cssはベースURLパスに応じて異なる方法で解決されます。

  • /api+ css/all.css/css/all.css
  • /api/+ css/all.css/api/css/all.css

これを征服するには、次のいずれかを行う必要があります

  • /css/all.cssベースURLパスから独立しているような絶対URLパスを使用する
  • HTMLドキュメントで別のベースURLを指定します(例/)。ただし、これは相対URLパスだけでなく、すべての相対URLに影響することに注意してください
  • ベースURLパスに合わせて相対URLパスを調整します。
    • 使用/apiするcss/all.css
    • 使用/api/する../css/all.css
    • /api/foo/bar/使用../../../css/all.css等_

最初の解決策が最も簡単だと思います。

于 2010-12-31T12:55:43.913 に答える
1

ファイル base_urlの末尾にスラッシュがあることを確認してください。config.php

$config['base_url'] = "http://www.mydomain.com/";

base_url()そして、リンクを扱うとき は常に電話してください...など

<link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>css/all.css">

編集:私はこのウィキページ
から を使用していることに注意してください。ただし、私のCIインストールはルート(内部)ではなく、ではないためです。mod_rewrite/ci173/RewriteBase//ci173/

于 2010-12-31T13:55:54.363 に答える