Как исправить редактор trix в laravel 5.8

#javascript #jquery #editor #laravel-5.8 #trix

#javascript #jquery #редактор #laravel-5.8 #trix

Вопрос:

Я пытаюсь добавить редактор trix в форму. Он появляется, но панель инструментов отключена, она не работает. После некоторого исследования я обнаружил, что это было в заголовке моего файла макета, поэтому я переместил его в конец тела и удалил «отложить», и теперь редактор trix исчез.

файл макета

 <!-- Scripts -->
<script src="{{ asset('js/app.js') }}"></script>   
 @yield('scripts')
</body>
</html>
  

поле, в котором я хочу редактор trix

 <div class="form-group">
   <label for="content">Content</label>
   <input id="content" type="hidden" name="content">
   <trix-editor input="content"></trix-editor>
</div>
  

trix js и css

 @section('scripts')
<script src="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.js"></script>
@endsection

@section('css')
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.css">
@endsection
  

Комментарии:

1. Я попытался немного почистить форматирование кода. Пожалуйста, убедитесь, что здесь достаточно информации, чтобы кто-то мог использовать опубликованный вами код для воссоздания вашей проблемы, чтобы он мог помочь вам выяснить, что не так.

Ответ №1:

—> композитор требует te7a-houdini/ laravel-trix

—> поставщик php artisan: опубликовать —provider=»Te7aHoudini LaravelTrix LaravelTrixServiceProvider»

—> php artisan мигрировать

На вашей странице используйте like

 <html>
    <head>
        @trixassets
    </head>

    <body>
        <form method="POST" action="route('article.store')">
            @csrf
            @trix(AppArticle::class, 'content')
            <input type="submit">
        </form>    
    </body>
</html>
  

Ответ №2:

Здесь я создал демонстрационный редактор trix, и он отлично работает в laravel 5.8.14 v

 <!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Laravel</title>
        <link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.css">
        <style>
            html, body {
                background-color: #fff;
                color: #636b6f;
                font-family: 'Nunito', sans-serif;
                font-weight: 200;
                height: 100vh;
                margin: 0;
            }

            .full-height {
                height: 100vh;
            }

            .flex-center {
                align-items: center;
                display: flex;
                justify-content: center;
            }

            .position-ref {
                position: relative;
            }

            .top-right {
                position: absolute;
                right: 10px;
                top: 18px;
            }

            .content {
                text-align: center;
            }

            .title {
                font-size: 84px;
            }

            .links > a {
                color: #636b6f;
                padding: 0 25px;
                font-size: 13px;
                font-weight: 600;
                letter-spacing: .1rem;
                text-decoration: none;
                text-transform: uppercase;
            }

            .m-b-md {
                margin-bottom: 30px;
            }
        </style>
    </head>
    <body>
        <div class="flex-center position-ref full-height">
            @if (Route::has('login'))
                <div class="top-right links">
                    @auth
                        <a href="{{ url('/home') }}">Home</a>
                    @else
                        <a href="{{ route('login') }}">Login</a>

                        @if (Route::has('register'))
                            <a href="{{ route('register') }}">Register</a>
                        @endif
                    @endauth
                </div>
            @endif

            <div class="content">
                <div class="title m-b-md">
                    Laravel
                </div>
                 <trix-editor input="content"></trix-editor>
            </div>
        </div>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.0/jquery.min.js" type="text/javascript"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/trix/1.1.1/trix.js"></script>
    </body>
</html>
  

Вы забыли добавить jquery?

t Скриншот

Ответ №3:

Ссылка на js кода trix, которую вы упомянули в своем section('scripts') , вместо того, чтобы включать в раздел «скрипты». Вставьте ссылку непосредственно в ваш основной раздел заголовка html, возможно, в layouts.app.

или вы также можете сделать то же самое, что и вы, но просто измените некоторый код следующим образом:

  1. В вашем html, разделе head, добавьте yield как, @YIELD('CSCRIPTS') чуть ниже другого упомянутого тега SCRIPT, убедитесь, что вы используете новое имя в yield.
  2. В html, разделе head, вы также увидите другой тег скрипта, там удалите DEFER, если он есть.
  3. И, наконец, перейдите к блейду, к которому принадлежит ваш раздел, и измените его на @SECTION('CSCRIPTS') .
  4. Работает хорошо.

Но также вы увидите другой тег скрипта, там и ключевое слово remove DEFER. Остальное оставить как есть, работает отлично