13

アセットフォルダーに「image.jpg」が保存されていて、パスが「www.example.com/public」で、画像への文字列パスのみが必要だとしましょう。どうすれば入手できますか? パス文字列のみのhtmlタグは必要ありません。

4

16 に答える 16

23

CakePHP のさまざまなグローバル定数 (ROOT、WEBROOT_DIR、WWW_ROOT、CSS など) を試しても結果が得られなかった後、一般的な解決策は、アプリケーションの webroot へのパスを返す $this->webroot プロパティにあるようです。したがって、上記のさまざまなケースで、レイアウト、ビュー、または要素に含まれる可能性があります。

シンプルな画像タグ:

<img src="<?php echo $this->webroot; ?>img/foo.gif" .../ > 

古い方法でのテーブル セル内の背景画像:

<td background="<?php echo $this->webroot; ?>img/foo.gif"> 

type="image" の入力:

<input type="image" src="<?php echo $this->webroot; ?>img/go_btn.gif" ... /> 
I think webroot always work
于 2013-04-16T07:02:25.660 に答える
9

のソース コードをHtmlHelper::image()調べて、このヘルパーが正しい URL を作成する方法を確認してください。少し変更すると、次のようになります。

$imageUrl = $this->assetUrl('image.jpg', array(
    // note: only required if you need the
    // URL -including- http://example.com
    'fullBase'   => true,
    'pathPrefix' => IMAGES_URL
));

Helper::assetUrl() のソース コードは次の場所にあります: https://github.com/cakephp/cakephp/blob/2.3.2/lib/Cake/View/Helper.php#L305

于 2013-04-13T21:16:52.613 に答える
7

CakePHP 3 (バージョン 3.2.4 以降) では、url/image ヘルパーを使用できますが、パスは必要ありません:

$this->Url->image('image.jpg');

または他の資産:

// Outputs /js/app.js
$this->Url->script('my.js');

// Outputs /css/app.css
$this->Url->css('my.css');
于 2016-07-01T09:34:03.240 に答える
5
    $imageUrl = $this->Html->assetUrl('image.jpg', array(
        // 注: 必要な場合にのみ必要です
        // URL -含む- http://example.com
        'fullBase' => true,
        'pathPrefix' => IMAGES_URL
    ));

これは、テーマを使用している場合でも機能します

于 2014-05-07T16:36:41.587 に答える
2
$this->Html->url('/img/image.jpg') // returns /cake/app/img/image.jpg

true必要に応じて、完全なベース URL のサンプル 1 に渡します。( mysite.com/cake/app/img/image.jpg)

WWW_ROOT . 'img/image.jpg' // full/path/to/webroot/img/image.jpg
于 2013-04-13T15:54:05.840 に答える
2

以下を使用できます。

$this->webroot.'img/abc.jpg'

$this->webroot は、アプリの現在のパスを提供します。

于 2013-04-15T05:06:46.507 に答える
1

CakePHP バージョン 3 では、url ヘルパーを使用できます。

$this->Url->build('/img/image.jpg');
于 2016-05-12T08:33:52.587 に答える
0

Cakephp 2.0+ によって提供されるこの定数を確認してくださいFULL_BASE_URL

すべてを知るにはここをクリック

于 2013-04-13T18:24:54.873 に答える
0

私は使うだろう

$this->Html->url('/', true).'img/image.jpg';
于 2014-03-25T18:14:08.013 に答える
0

CakePHP 3

Cake\Routing\Router を使用します。

<img src="<?php echo Router::url('/', true); ?>/img/name.jpg" />
于 2019-10-08T13:34:24.593 に答える
-3

自分でパスを作成する必要があると思います。ファイルの名前とそれが存在するディレクトリがわかっている場合、次のことを妨げているのは次のとおりです。

$imageUrl = sprintf("%s/%s/%s", FULL_BASE_URL, "public", $imageName);
//  this produces http://www.example.com/public/image.png
于 2013-04-13T17:46:53.847 に答える