[英]Assets not referencing to public folder (Laravel)
我的 laravel 項目中有公用文件夾,里面有一些 js 和 css 文件。
我正在使用資產 function,即使它引用了公共文件夾,我的文件也沒有加載到頁面上。
我正在使用這段代碼來加載(這只是一個例子,還有更多文件):
<link href="{{ asset('css/style.css') }}" rel="stylesheet">
在瀏覽器的控制台上,我得到這樣的信息:
無法加載資源:服務器響應狀態為 404(未找到) http://localhost:8000/css/style.css
好吧,我試圖恢復上次提交,但沒有成功。 試圖更改為 URL::asset() function,沒有。 嘗試了以下鏈接中的所有內容: http://laravel.io/forum/09-17-2014-problem-asset-not-point-to-public-folder?page=1並成功。
請幫忙?
謝謝!
我遇到了同樣的問題。 這是由於將 .htaccess 文件從 public 移動到項目的根目錄,以便為localhost/project
而不是localhost/project/laravel
。 並且需要在資產中使用 public :
<link href="{{ asset('public/css/app.css') }}" rel="stylesheet">
或者,從 /Illuminate/Foundation/helpers.php 修改資產函數
if (! function_exists('asset')) {
/**
* Generate an asset path for the application.
*
* @param string $path
* @param bool $secure
* @return string
*/
function asset($path, $secure = null)
{
return app('url')->asset("public/".$path, $secure);
}
}
前面的方法不是好方法。 無論如何,如果有用於設置資產路徑的配置,這會更容易。
添加您的env
:
ASSET_URL=public
或
ASSET_URL=public/
或
ASSET_URL=/public
你需要哪一個你可以做到...
在您保存並成功設置您的.htaccess
(像這樣)之后,您的方法將按您期望的那樣工作:
<link href="{{ asset('css/style.css') }}" rel="stylesheet">
請注意,在您設置.htaccess
后,所有客戶端 URL 請求(對圖像的請求、JavaScript/CSS 文件、JSON)都將受到重寫規則的影響。
另請注意,在您看到更改后可能需要一段時間。 緩存可能會干擾這些更改。 因此,請確保清除 Laravel 緩存:
在您的 Shell 中分別運行以下命令:
php artisan cache:clear
php artisan route:cache
php artisan config:cache
php artisan view:clear
並確保在瀏覽器設置中暫時禁用緩存:
在 Google Chrome 中:打開開發工具>打開網絡選項卡> 選中“禁用緩存” 。
其他瀏覽器:在線搜索如何做到這一點。
<link href="{{ asset('/css/style.css') }}" rel="stylesheet">
試試這個
在我的.env
案例中,我嘗試過
ASSET_URL=public
兩邊斜線和單獨,沒有任何幫助以及所有相關的SO答案,然后打開我的舊項目並看到。這最終對我有用(當然,在清除視圖和緩存旁邊)
ASSET_URL="${APP_URL}"
我在談論本地主機端
試試這個
<link href="{{ asset('assets/css/style.css') }}" rel="stylesheet">
將其添加到您的 .htaccess 文件中
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
它會解決你的問題。 確定
由於您已將 .htaccess 文件移動到根文件夾,因此無論您在哪里使用,都必須更改資產 url。 URL 應該如下所示,
<link href="{{ asset('public/css/style.css') }}" rel="stylesheet">
或者,您可以在 .env 文件中將 ASSET_URL 設置為“public”,
ASSET_URL=http://localhost/projectname/public
對不起我的英語,我在使用 mike42/escpos-php 時遇到同樣的問題是因為在 xampp
我移動到 zlib.output_compression=on
正確的方法是
zlib.output_compression=關閉
資產再次運作
stlye.css 正在從公共文件夾加載並為我工作。 不要忘記添加rel="stylesheet"
<link href="{{ asset('/css/style.css') }}" rel="stylesheet">
並確保在瀏覽器設置中暫時禁用緩存:
在谷歌瀏覽器中:
Open Dev Tools > Open the Network tab > Check "Disable cache".
其他瀏覽器:在線搜索如何做到這一點。
這對我有用。 似乎之前加載的 CSS 和 JS 在緩存中,直到它被釋放,新的才會加載
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.