7

コントローラー ビューの 1 つでいくつかの PDF にリンクしたいと思います。これを達成するためのベストプラクティスは何ですか? CakePHP の webroot フォルダーには ./files/ サブフォルダーが含まれています。href で「魔法の」パス名 (例: 「/path/to/my/webroot/files/myfile.pdf」) を使用せずにリンクしようとすると混乱します。

私のオプションは何ですか?

編集:質問を適切に説明していませんでした。/app/webroot/files/ 内のファイルにプラットフォームに依存しない (つまり no mod_rewrite) 方法でリンクしようとしました。

それ以来、私はそのようなファイルを CakePHP ディレクトリ構造の外に保存することで、この問題を回避してきました。

4

8 に答える 8

17
$html->link('Pdf', '/files/myfile.pdf');
于 2008-10-27T08:19:07.790 に答える
6

これは少し関係がありませんが、モデルやその他の場所でそのような場所にアクセスするには、次のようにするだけです。

$file = WWW_ROOT . DS . 'files' . DS;

この戦術は、XML や JSON などの静的データをロードするためにファイルにアクセスする場合に役立ちます。

これは、一般消費や公開リンクには推奨されません。

于 2010-11-03T16:56:58.710 に答える
4

これは、mod_rewrite が使用されていない場合の問題であることを確認できます。

<?php echo $html->link('pdf', '/files/test.pdf'); ?>

出力

<a href="/pathtoapp/index.php/files/test.pdf">pdf</a>

出力する必要があります

<a href="/pathtoapp/app/webroot/files/test.pdf">pdf</a>
于 2010-08-18T14:45:27.083 に答える
2

これはうまくいくはずです

<?php echo $html->link('pdf', $this->webroot('files'.DS.'test.pdf'); ?>
于 2010-08-28T18:10:08.447 に答える
1

また..

<a href="<?php echo $this->webroot; ?>files/somefile.pdf">Link Text</a>

:)

于 2008-12-17T02:44:07.610 に答える
1

質問を正しく理解しているかどうかはわかりませんが、ここに行きます。基本的に、webroot フォルダーに配置したファイルはすべて Web サーバーでアクセスできるため、ファイルを webroot/files/file.pdf に配置する場合は、単純に /files/file.pdf にリンクします。

それでもうまくいかない場合は、質問を明確にしてください...

于 2008-10-26T14:05:56.843 に答える
0

また...

<a href="<?php echo $html->url('/files/somefile.pdf'); ?>">Link Text</a>
于 2008-11-11T09:30:40.333 に答える