0

「本番」アプリケーションと同じドメインで Web アプリケーションを開発しています。これは、最上位の Web サイトの単なるサブディレクトリです。何かのようなもの:www.site.com/v3/...

CodeIgniter を使用して相対パスを取得しようとしている人を何人か見てきました。以前base_url()は、「v3」サイトのすべての HTML 画像宣言で立ち往生していましたが、最近 HTML サイト テンプレートを購入し、<?php base_url() ?>何百もの HTML タグに埋め込んでいます。とても効率が悪いようです。

誰かがこれを手伝ってくれることを願っています-これらのHTML参照をすべて検索して置き換えることなく、開発コード(別名「/ v3 /」)を直接使用できるようにしたいと思います。

4

2 に答える 2

0

$config['base_url']これはまさにinの目的ですapplication/config/config.php。に設定すると、使用する場所やhttp://site.com/v3/サイト全体に反映されます。base_url()site_url()

ただし、すべての、 などに対してサイト全体でbase_url()orを使用することは悪い習慣であることに注意してください。狂ったように PHP インタープリターを呼び出しています。site_url()srchref

はるかに優れた解決策<base><base href="<?= site_url();?>"><head>.

そこにあります。一度使用するsite_url()と、今後は次のように使用できます。

<a href='controller/action'>My Link</a><img src='my_image.png'/>

一般的に、全体的な原則として、自分自身が重複していることに気付いた場合は... その重複を取り除く方法を見つけてください。乾いた状態に保ちます。

于 2013-02-11T00:55:56.713 に答える
0

皆さん、助けてくれてありがとう。

タグの潜在的な問題について読んだ後、アプローチを再考しました。メイン サイトのサブドメイン (dev.mysite.com のようなもの) を作成しました。そうすれば、CI の config.php でベース URL を変更するだけで、本番バージョンに表示されるのとまったく同じようにコードに取り組むことができます。

現時点では、相対パスを必要とするすべての HTML タグに対して php プリプロセッサを呼び出すのは大変で非効率的であり、タグを使用すると一貫性のない結果が生じる可能性があるため、これが最も単純な解決策のように思えます。

于 2013-02-15T17:20:02.690 に答える