簡體   English   中英

公用文件夾中的Laravel圖片

[英]Laravel Images in Public Folder

我正在嘗試將innovastudios contentbuilder.js( http://innovastudio.com/content-builder.aspx )集成到我現有的laravel 5項目中,並且遇到了一些問題。 JS工作正常,但是我的公用文件夾中缺少一些圖片。

我的網站結構是:

在這里的edit.blade.php文件中,我正在加載contentbuilder.js文件,尤其是一個片段文件(snippet.blde.php)。 這包含我要拖放的所有元素

snippets.blade.php文件位於內部:public / backend / contentBuilder / assets /

加載snippets.blade.php的代碼是:

jQuery(document).ready(function ($) {
          $("#contentarea").contentbuilder({
              //snippetFile: 'assets/minimalist-basic/snippets.html',
                        snippetFile: "{{asset('backend/contentBuilder/assets/simple/snippets.blade.php')}}",
              snippetOpen: true,
              toolbar: 'left',
              iconselect: 'assets/ionicons/selecticon.html'
          });
      });

在我的snippets.blade.php中,我使用{{asset('')}}引用了所有圖像,這是我的snippets.blade.php:

    <div data-thumb="{{asset('backend/contentBuilder/assets/simple/thumbnails/theme1_thumb.png')}}">
      <div class="container">
          <div class="row" style="height: 900px; width: 635px; overflow: hidden; margin: auto;">
            <img class="img-noscale" src='{{asset('backend/contentBuilder/assets/simple/images/6.jpg')}}' style="height: 100%; width: 100%; position: relative;" />
          </div>      
      </div>
    </div>

我認為錯誤是:“ http:// localhost:8000 / backend / flyers / 10 /%7B%7Basset ('backend / contentBuilder / assets / simple / thumbnails / theme1_thumb.png')%7D% 7D 404(未找到)”

看來{{assets('...')}}沒有指向我的公用文件夾! 知道為什么嗎?

我認為問題出在您提供的JS代碼段中。

而不是使用asset()幫助器定義snippetFile,

在您的file.blade.php將此代碼段添加到<head>標記的開頭。

因此,您的刀片看起來像這樣

<head>
<script> var base_url = "{{asset('/')}}"; </script>
...
... your script file included here
</head>

然后在您的JS代碼中

jQuery(document).ready(function ($) {
          $("#contentarea").contentbuilder({
              //snippetFile: 'assets/minimalist-basic/snippets.html',
                        snippetFile: base_url + "backend/contentBuilder/assets/simple/snippets.blade.php",
              snippetOpen: true,
              toolbar: 'left',
              iconselect: 'assets/ionicons/selecticon.html'
          });
      });

另外,我認為可能還有另一個小問題。

如果未通過控制器通過view()返回blade.php則不會對其進行處理。

因此,在您的控制器中添加一個方法來像這樣處理刀片

function returnThumbnail(Request $request) {
return view('snippet');
}

確保snippet.blade.php位於resources/views文件夾中。

然后像這樣添加一條路線

Route::get('/path/to/snippet', 'YourController@returnThumbnail');

而且,在您的Javascript中,

jQuery(document).ready(function ($) {
          $("#contentarea").contentbuilder(
              snippetFile: base_url + "path/to/snippet",
              snippetOpen: true,
              toolbar: 'left',
              iconselect: 'assets/ionicons/selecticon.html'
          });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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