簡體   English   中英

不引用公用文件夾的資產 (Laravel)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM