laravel中css,js等靜態檔案的位置在網站的根目錄public下,但是我想把檔案放在別的目錄下,例如:resoures/assets,在入口檔案public/index.php中加入了如下程式碼:
$app = require_once __DIR__.'/../bootstrap/app.php';
/*
* 设置静态文件目录
*/
$app->bind('path.public', function() {
$path_public = base_path() . DIRECTORY_SEPARATOR . env('PATH_PUBLIC', 'public');
return $path_public;
});
我在.env檔中設定了環境變數:
PATH_PUBLIC=resources/assets
使用幫助函數public_path()列印出來的結果的確改變了,為:網站根目錄/resources/assets,接下來我在這個目錄下新建了styles目錄,並在視圖中引用:
<link rel="stylesheet" href="{{ asset('styles/login.css') }}">
<link rel="stylesheet" href="<?php echo asset('styles/login.css') ?>">
解析後網頁原始碼是這樣的:
<link rel="stylesheet" href="{{ asset('styles/login.css') }}">
<link rel="stylesheet" href="http://www.cx.com/styles/login.css">
為什麼{{}}不解析?要添加smarty擴充?為什麼靜態文件連結沒有變/resources/assets?
引入一個css都這麼難。 。 。我要跳黃河。 。 。求解答。
寫個絕對路徑不就行了
謝謝邀請。用絕對路徑也可以,你可以定義一個常數來定義是什麼環境的路徑位址。用相對路徑要開伺服器配置的根目錄是什麼位置才可以用相對路徑。
例如你css 檔案放在public/css 下那麼在頁面上就是 /css/style.css的路徑
js 的引入同上!
此方式引入前提是你需要將public 目錄設為站點根目錄!