1

Twitter の公開タイムラインからツイートを取得し、それらを 60 秒間キャッシュするなどの単純なサイトを開発しました。最近ホストを Hostgator から Mediatemple に移動しましたが、私のサイトは以前は Hostgator で正常に動作していました。

私のアプリケーションはデータベース接続を使用しておらず、どのような形式のフラット ファイル データベースも使用していません。ツイートはルート ディレクトリに保存されている XML ファイルにキャッシュされますが、そのほとんどは重要ではありません。

以下に示すように、url ヘルパーが含まれています (これは autoload.php のヘルパー行です)。$autoload['helper'] = array('url');

また、.htaccess ディレクティブを使用して URL から index.php ファイルを削除しました。これも以前は Hostgator で機能していました (以下の .htaccess コードを参照)。

RewriteEngine On
RewriteRule ^(application) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

アプリケーション内のビュー フォルダーにある私の home.php ビュー ファイルでは、ビュー ファイル内の Hostgator で以前に動作していた関数 base_url() を使用して、ヘッダーに base href 値を追加しています。<base href="<?php echo base_url(); ?>" />

config.php ファイルでの base_url の値は次のようになります。

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

起こっているように見えますが、base_url はまったく表示されません。何らかの理由で空のように見えるため、 base_url の値をエコーアウトしているようには見えません。

さらに奇妙なのは、「fetch.php」という別のビュー ファイルにリンクがあり、何らかの理由で値が取り除かれているように見えることです (XSS フィルタリングはオフになっています): <a href="threetune/show"><img src="assets/images/cookie.jpg" /></a>threetune/show 部分は表示されず、このような空の href 値しか表示されません<a href=""><img src="assets/images/cookie.jpg" /></a>

Mediatemple サーバーの制限や設定が必要な PHP.ini フラグなど、私が行った可能性のある問題を誰かが見ることができますか? ありがとうございます。十分に説明できたことを願っています。

4

2 に答える 2

3

私もグリッドに乗っています。あなたの質問を読み直し、少しテストを行った後(私にはうまくいきます)、urlヘルパーをロードするのを忘れていたことが原因だと思います。

サイトのベース URL を 経由でアプリケーションで使用できるようにする場合は、最初にヘルパーbase_url()をロードする必要があります。urlconfig/autoload.php を使用するか、コントローラーに手動でロードします。

それ以外の場合は、config/constants.php を使用して定数変数を定義できます。

define('BASE_URL', 'http://site.com');
define('BASE_PATH', '/path/to/CI/folder');
于 2010-06-23T14:22:38.280 に答える
0

base_url に関する簡単なメモ - サイトが複数のドメインをサポートできるようになるため、この変数を動的に設定することをお勧めします。

(i.e. $config['base_url']    = ‘http://’.$_SERVER['HTTP_HOST'])

http://thecodeabode.blogspot.com/2010/10/codeigniter-supporting-multiple-domains.htmlでは、プロトコルとポートを考慮したスクリプトを提供することで、これを少し拡張しています。

于 2010-10-08T05:40:49.900 に答える