【问题标题】:Template not showing in my Laravel 6.6 project with Vue.js使用 Vue.js 在我的 Laravel 6.6 项目中未显示模板
【发布时间】:2020-05-18 03:32:17
【问题描述】:

我在我的 Laravel 项目中从 Vue.JS 进行了基本安装,这是我的 package.json

{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "npm run development -- --watch",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
        "prod": "npm run production",
        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
    },
    "devDependencies": {
        "axios": "^0.19",
        "bootstrap": "^4.0.0",
        "cross-env": "^5.1",
        "jquery": "^3.2",
        "laravel-mix": "^5.0.1",
        "lodash": "^4.17.13",
        "popper.js": "^1.12",
        "resolve-url-loader": "^2.3.1",
        "sass": "^1.20.1",
        "sass-loader": "7.*",
        "vue": "^2.5.17",
        "vue-template-compiler": "^2.6.10"
    }
}

所以我运行这个代码,每个人都在安装后执行 npm run install && npm run dev 为 Laravel 的混合生成文件,每个教程都说我必须把它放在我主要的页脚文件

<script src="{{ asset('js/app.js') }}"></script>

总是说文件不存在,这是真的,因为当我从上面的 mix 中运行这个命令时,这个简单的在一个新的公用文件夹中创建一个 js 和一个 css 文件夹,这是正确的方法吗?因为我没有看到任何关于此命令创建公用文件夹的教程,请参见下图:

所以当我明确提出这条路径时:

<script src="{{ asset('public/js/app.js') }}"></script>

我的 Vue.js 已加载,我在控制台中看到了 Vue.js 的默认文本,但是当我从这个文件中放入模板时 TesteFood.vue

<template>
    <h1>Testando VUE</h1>
</template>

没有显示,我也发出了这个命令npm run watch没有成功。

【问题讨论】:

  • 你运行composer require laravel/ui然后运行php artisan ui vue --auth,然后运行npm install &amp;&amp; npm run dev
  • 应该是asset('js/app.js')。您的服务器应该指向public 文件夹。或者你是这样打开你的页面yousite.com/public
  • 嗨,亚当我不希望我的应用程序打开到公共文件夹,所以我对我的应用程序进行了修改,使其位于根文件夹中,所以我将公共文件夹中的 index.php 放在了根文件夹中将 .htacess 放在 root 上并且工作正常。但是这个js只是mix生成的文件
  • @wavrik 嗨 wavrik,如果您回复我,请使用“@adam”,以便我收到通知。将index.php 放在根目录中是一个非常糟糕的主意。每个人都可以访问您的应用程序文件,例如 yourdomain.com/app/... 或 yourdomain.com/storage/app/..` 等。这是一个巨大的安全风险。
  • @wavrik 及其在 cssjs 属于公用文件夹的文档中:https://laravel.com/docs/6.x/structure#the-public-directory

标签: javascript laravel vue.js


【解决方案1】:

试试mix 辅助函数:

<script src="{{ mix('js/app.js') }}"></script>

【讨论】:

  • 我把这个 和这个 ,当我公开时,我得到这个 Unable to locate Mix file: /public/js/app.js,如果我没有得到这个 ERROR NOT FOUND
【解决方案2】:

我只需重新安装我所有的 Laravel 并安装 Vue.js,并且不移动公用文件夹,一切正常。

谢谢大家!

【讨论】:

  • 那是个很酷的家伙!
【解决方案3】:

安装 laravel 6 后,运行此命令 composer require laravel/ui --dev 以集成所有 vue js 依赖项,然后创建组件并将其注册到 app.js 文件中,如下所示:

Vue.component('teste-food', require('./components/TesteFood.vue')); 然后运行 ​​npm run dev 编译一次代码或 npm run watch 编译任何你在你的项目中添加一些 vue.js 文件或 sass 的东西。 在此步骤中,您应该会看到您的组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多