2 回答

TA貢獻1828條經驗 獲得超4個贊
目前您在 src 中沒有輸出。您需要回顯或打印文件路徑:
它應該顯示(注意回聲):
<img src="<?php echo asset('images/image1.jpg');?>"/>
這也是一個完整的文件路徑,可能與協議相關。因此可能會被縫合到您的域名上。例如 http://example.com/path/from/file/system/root/to/assets/images/image1.jpg
。如果您包含該file://
協議,則在某些瀏覽器上在您自己的站點上進行本地開發時,它可能會起作用,但由于原始策略的原因,可能無法起作用。它肯定無法在公共網絡服務器上運行。
例如/var/www/example.com/assets/image.png
是一個文件路徑,如果文檔根目錄是/var/www/example.com
我們可以用作/assets/image.png
網絡路徑。
我建議將所有資產與文檔或項目根目錄相關。
您可以在項目引導程序中使用一個簡單的常量來代替類似的內容:
<?php define('ASSET_ROOT', '/assets'); ?>
那么你的 src 就變成了:
<img src="<?= ASSET_ROOT . '/images/image1.jpg'; ?>"/>
(這里使用短回聲<?=
代替<?php echo
。)
這給了你一些靈活性。您稍后可以將其替換為以下內容:
<?php define('ASSET_ROOT', '//cdn.example.com/assets'); ?>
您當前的資產路徑也與包含您的函數的腳本相關。如果你移動它,你就必須重寫你的函數。該常量的開銷較小。
擁有相對于固定根的資產,僅沿著樹向下移動,要簡單得多,也不需要考慮。

TA貢獻1853條經驗 獲得超6個贊
asset 函數的問題是DIR返回本地文件路徑,我應該返回的是服務器 url。因此,我替換了這一行
"__DIR__.'/../../../resources/assets/'.$url";
和
http://server_host/resources/assets/".$url
就我而言是
http://localhost/project/resources/assets/".$url
并返回該行并且它有效。
- 2 回答
- 0 關注
- 160 瀏覽
添加回答
舉報