2016-09-26 4 views
0

Ich versuche, innovastudios contentbuilder.js (http://innovastudio.com/content-builder.aspx) in meinem bestehenden Laravel 5-Projekt zu integrieren und einige Probleme zu begegnen. Die JS funktioniert ordnungsgemäß, aber ich vermisse einige Bilder aus meinem Öffentlichen Ordner.Laravel Bilder in öffentlichen Ordner

meine Website-Struktur ist:

edit.blade.php innen hier bin ich die contentbuilder.js insbesondere eine Schnipsel-Datei (snippet.blde.php) geladen werden. Diese enthält alle Elemente, die ich & Tropfen

Die snippets.blade.php Datei befindet sich ziehen wollen, ist im Inneren: public/backend/Content/assets/

Der Code der snippets.blade.php zu laden ist:

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' 
      }); 
     }); 

In meinem snippets.blade.php ich alle Bilder mit verwiesen haben {{Asset ('')}} Das ist mein 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> 

Was ich in meiner Ansicht bekommen, ist ein Fehler mit: "http://localhost:8000/backend/flyers/10/%7B%7Basset ('backend/Content/assets/simple/thumbnails/theme1_thumb.png')% 7D% 7D 404 (nicht gefunden)"

Es sieht aus wie { {assets ('...')}} zeigt nicht auf meinen öffentlichen Ordner! Irgendeine Idee warum?

+0

Ist js Code-Snippet Sie oben in snippets.blade.php erwähnt? – GokulSrinivas

+0

Versuchen Sie, 'php artisan laroute: generate 'auszuführen - wenn Sie Laravel in den JS-Routenhelfern verwenden, müssen Sie sie gelegentlich neu generieren, wenn Sie Pfade verschieben. – Carl

+0

@carl: Der Befehl "route: generate" ist nicht definiert. Meinst du eins von diesen? ereignis: generieren schlüssel: generieren route: list route: löschen route: cache – Mamulasa

Antwort

1

Ich denke, das Problem liegt in dem JS-Code-Snippet, das Sie bereitgestellt haben.

Statt mit dem asset() Helfer die snippetFile definieren,

In Ihrem file.blade.php hinzufügen, um dieses Snippet am Anfang in dem <head>-Tag.

So sieht Ihre Klinge wie diese

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

Und in Ihrem JS-Code

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' 
      }); 
     }); 

Auch ich denke, es könnte noch ein kleines Problem sein.

Die blade.php wird nicht verarbeitet, wenn sie nicht über die view() über einen Controller zurückgegeben wird.

Also, ein Verfahren, in dem Controller hinzufügen, der die Klinge verarbeitet wie so

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

Sicherstellen, dass die snippet.blade.php im resources/views Ordner ist.

Dann fügen Sie eine Route wie so

Route::get('/path/to/snippet', '[email protected]'); 

Und in Ihrem Javascript,

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

Danke, Perfekt! – Mamulasa

+0

Gut zu helfen! :) – GokulSrinivas

Verwandte Themen