代码之家  ›  专栏  ›  技术社区  ›  Rainier laan

当正确的路径时,laravel-jquery不工作?

  •  1
  • Rainier laan  · 技术社区  · 6 年前

    这个问题以前问过很多次,但我找不到解决问题的答案。我做了一个新的拉维尔6项目,并试图使用js。您可以像这样在layout.blade中加载js文件(除非他们在laravel 6中更改了它)

        <script type="text/javascript" src="{!! asset('js/jquery-3.4.1.min.js') !!}"></script>
        <script type="text/javascript" src="{!! asset('js/main.js') !!}"></script>
        <script type="text/javascript" src="{!! asset('js/app.js') !!}"></script>
    

    但它似乎对我不起作用。 我的javascript文件在 public/js/... 上面的脚本在我的刀片文件的底部

    刀片式锉刀

    <!doctype html>
    <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    
        <!-- CSRF Token -->
        <meta name="csrf-token" content="{{ csrf_token() }}">
    
        <title>{{ config('app.name', 'Laravel') }}</title>
    
        <!-- Scripts -->
        <script src="{{ asset('js/app.js') }}" defer></script>
    
        <!-- Fonts -->
        <link rel="dns-prefetch" href="//fonts.gstatic.com">
        <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
    
        <!-- Styles -->
        <link href="{{ asset('css/app.css') }}" rel="stylesheet">
    </head>
    <body>
        <div id="app">
            <nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
                <div class="container">
                    <a class="navbar-brand" href="{{ url('/') }}">
                        {{ config('app.name', 'Laravel') }}
                    </a>
                    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
                        <span class="navbar-toggler-icon"></span>
                    </button>
    
                    <div class="collapse navbar-collapse" id="navbarSupportedContent">
                        <!-- Left Side Of Navbar -->
                        <ul class="navbar-nav mr-auto">
    
                        </ul>
    
                        <!-- Right Side Of Navbar -->
                        <ul class="navbar-nav ml-auto">
                            <!-- Authentication Links -->
                            @guest
                                <li class="nav-item">
                                    <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
                                </li>
                                @if (Route::has('register'))
                                    <li class="nav-item">
                                        <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
                                    </li>
                                @endif
                            @else
                                <li class="nav-item dropdown">
                                    <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                        {{ Auth::user()->name }} <span class="caret"></span>
                                    </a>
    
                                    <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
                                        <a class="dropdown-item" href="{{ route('logout') }}"
                                           onclick="event.preventDefault();
                                                         document.getElementById('logout-form').submit();">
                                            {{ __('Logout') }}
                                        </a>
    
                                        <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                                            @csrf
                                        </form>
                                    </div>
                                </li>
                            @endguest
                        </ul>
                    </div>
                </div>
            </nav>
    
            <main class="py-4">
                @yield('content')
            </main>
        </div>
    
    
        <script type="text/javascript" src="{{ asset('js/jquery-3.4.1.min.js') }}"></script>
        <script type="text/javascript" src="{{ asset('js/main.js') }}"></script>
        <script type="text/javascript" src="{{ asset('js/app.js') }}"></script>
    </body>
    </html>
    
    

    在我的 main.js 我已经设置了一个简单的警报来检查代码是否正常工作,但是它没有显示,也没有在控制台中给出错误。这是什么原因?

    主.js

    $(document).ready(function() {
    
        alert("wow");
    
    
    });
    
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Lucien Dubois    6 年前

    我建议使用 Laravel Mix 安全资产 而不是 资产 是的。

    像这样编辑webpack.mix.js文件:

    mix.scripts([
        'resources/js/jquery-3.4.1.min.js',
        'resources/js/main.js',
        'resources/js/app.js'
    ], 'public/js/scripts.js');
    

    然后运行以下命令:

    npm run dev
    

    把这个放到你的刀片文件里:

    <script src="{{ secure_asset('js/scripts.js') }}"></script>
    
        2
  •  0
  •   paravibe    6 年前

    你在用网页包吗? 如果是,则必须将js混合到公共目录中:
    将此行添加到顶部的main.js中:
    require('./jquery-3.4.1.min');
    这是给webpack.mix.js的 mix.js('resources/js/main.js', 'public/js');
    那就跑吧 npm run development

    只在blade文件中添加main.js,或者在不需要的情况下单独混合js文件。

    推荐文章