1

申し訳ありませんが、私は上手な英語を話せません。翻訳者を使用してください。codeigniter でリンクを作成するにはどうすればよいですか?

後でパーマリンクを使用したい場合はどうすればよいですか?

パーマリンクを変更するたびに、システム コード全体を変更する必要がありますか?

これらの引数からリンクを作成し、動的に構成されたように動作するライブラリはありますか?

たとえば、システム ディレクトリを次のように変更したい場合:

http://testing/webapp/index.php

に:

http://production/index.php

すべてのコードを変更する必要がありますか? これのベストプラクティスは何ですか?

4

2 に答える 2

3

codeingiter のメソッド base_url() および site_url() を使用できます。

最初に、コントローラーに URL ヘルパーをロードする必要があります。

$this->load->helper('url');

以下の定義を参照してください (CI ドキュメントによると、http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html ) 。


サイトのURL()

構成ファイルで指定されているように、サイトの URL を返します。index.php ファイル (または構成ファイルでサイトの index_page として設定したもの) が URL に追加され、関数に渡すすべての URI セグメントと、構成ファイルで設定された url_suffix が追加されます。

URL が変更された場合にページの移植性が向上するように、ローカル URL を生成する必要がある場合はいつでもこの関数を使用することをお勧めします。

オプションで、セグメントを文字列または配列として関数に渡すことができます。文字列の例を次に示します。

echo site_url("ニュース/ローカル/123"); 上記の例は、次のようなものを返します。

http://example.com/index.php/news/local/123

配列として渡されるセグメントの例を次に示します。

$segments = array('news', 'local', '123');

echo site_url($segments);

base_url()

構成ファイルで指定されているように、サイトのベース URL を返します。例:

echo base_url();

この関数は、index_page または url_suffix を追加せずに、site_url と同じものを返します。

また、site_url と同様に、セグメントを文字列または配列として指定できます。文字列の例を次に示します。

echo base_url("blog/post/123");

上記の例は、次のようなものを返します。

http://example.com/blog/post/123

これは、site_url() とは異なり、画像やスタイルシートなどのファイルに文字列を指定できるため便利です。例えば:

echo base_url("/_user_guide_src_ci/images/icons/edit.png");

これにより、次のような結果が得られます。

http://example.com/images/icons/edit.png
于 2013-04-07T14:44:42.100 に答える
1

これはまさに、構成ファイルのベース URL の目的です。その後、心配する必要があるのは相対 URL だけです。config フォルダー内に新しいフォルダーを作成することで、さまざまな環境をセットアップすることもできます。

たとえば、config.php を config フォルダー内に直接設定した場合

$config['base_url'] = 'http://localhost/hello';

次に、ベース URL は常に http:// localhost/hello です。ここで、自宅の開発環境と運用環境があるとします。config.php を production という config 内のフォルダーにコピーすると、application/config/production/config.php はベース URL を次のように設定します。

$config['base_url'] = 'http://www.example.com/hello';

次に、index.php で次のように設定します。

define('ENVIRONMENT', 'production');

環境を変更する必要があるところはどこでも、Codeigniter が変更してくれます。そのため、ライブ サイトでは本番環境を使用し、自宅ではその環境を開発環境に変更し、CI が作業を行います。

次に、コードで base_url() を使用してリンクを作成します。

例えば:

 <a href="<?=base_url();?>hello_world">Hello World</a>

生産します:

//at home:
http://localhost/hello_world
//in production:
http://www.example.com/hello_world

わかる?

于 2013-04-07T14:46:22.333 に答える