Laravel Example.vue 不更新

Posted

技术标签:

【中文标题】Laravel Example.vue 不更新【英文标题】:Laravel Example.vue not updating 【发布时间】:2017-07-03 15:00:48 【问题描述】:

我正在尝试弄清楚如何在 Laravel 5 项目中使用 Vue。基本的 Laravel 安装附带 app.js 和 Example.vue。我能够拥有 “我是一个示例组件!”通过添加到 home.blade.php 显示在我的视图中。让我感到困惑的是,除其他问题外,我根本无法更改此组件。

如果我更改 Example.vue 中的文本(只是在模板部分,而不是逻辑中),它根本不会更新。 (我已经尝试按照 Laravel 文档等运行 npm run dev ,它似乎编译没有错误,并且 /public/js/app.js 当时已修改,但浏览器中的视图没有改变。 )

当我修改 app.blade.php 时,这些更改会显示出来,home.blade.php 中的更改也会显示。但是,我找不到证据表明更改 /resources/assets/js/app.js 或 Example.vue 的内容有任何影响。更令人困惑的是,如果我从 app.blade.php div 元素中删除 id="app" ,这不会导致 Example 组件消失。基于玩 vue jsfiddle,这似乎应该破坏组件。

我不确定这是某种缓存问题,还是编译问题,或者我不了解 vue 的工作方式,或者是什么,但我不知道出了什么问题。我直接从 laravel 安装中使用 webpack.mix.js 文件,我尝试停止并重新启动 vagrant,重新加载浏览器和 php artisan cache:clear。 (之前我尝试使用 Elixir 代替 Mix,以及 vueify 和 gulp,同样的问题。)

任何建议将不胜感激!

【问题讨论】:

【参考方案1】:

我在使用 laravel 和 vuejs 时也遇到了类似的问题:

Step1.检查npm run watchnpm run watch-poll是否正常工作。

Step2. 如果您的 app.js 文件很大,您的浏览器可能正在缓存它。使用 CTRL+F5 和 CTRL+SHIFT+F5(在 Chrome 上)清除浏览器缓存。

Step3. 此方法适用于缓存清除。在webpack.config.js 中添加.version()

例如。 mix.js('resources/js/app.js','public/js').vue().sass('resources/sass/app.scss', 'public/css').version();

您的脚本将如下所示: <script src=" mix('js/app.js') " defer type="text/javascript"></script>.

这将消除所有缓存问题:)

【讨论】:

【参考方案2】:

这对我有用:

您可能会发现在某些环境中,当您的文件更改时,Webpack 并没有更新。如果您的系统出现这种情况,请考虑使用 watch-poll 命令:

npm run watch-poll

See more here

【讨论】:

【参考方案3】:

通过一个简单的 Vue.js 项目,我们通过npm run serve 为项目提供服务,该项目同时运行 npm 观察程序。 watcher 监视 Vue.js 项目中的变化。由于我们通过php artisian serve 提供服务,我们还需要运行npm run watch,因为php artisan serve 只监视Laravel 的变化。

解决方案在您更改开发项目时同时运行 php artisan servenpm run watch

安装:npm install npm-watch

【讨论】:

【参考方案4】:

我遇到了同样的问题,我使用 XAMMP 并尝试了“php artisan serve”,这对我有用。

【讨论】:

【参考方案5】:

我遇到了同样的问题。我正在使用本地开发环境(带有 php7 和 mysql 的 Mac OS X Sierra)。 如上所述,我尝试了缓存清理。停止并重新启动 php 服务器(以防万一..):不走运。然后'composer dump-autoload':问题仍然存在。然后'npm run watch',它给出了以下消息:

> @ watch /Users/ulam/code/myproj
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

 10% building modules 1/1 modules 0 active Webpack is watching the files…

 95% emitting

 DONE  Compiled successfully in 4171ms

然后:

nks                    Chunk Names
  fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.eot?f4769f9bdb7466be65088239c12046d1  20.1 kB          [emitted]
fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.woff2?448c34a56d699c29117adc64c43affeb    18 kB          [emitted]
 fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.woff?fa2772327f55d8198301fdb8bcfc8158  23.4 kB          [emitted]
  fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.ttf?e18bbf611f2a2e43afc071aa2f4e1512  45.4 kB          [emitted]
  fonts/vendor/bootstrap-sass/bootstrap/glyphicons-halflings-regular.svg?89889688147bd7575d6327160d64e760   109 kB          [emitted]
                                                                                               /js/app.js   1.2 MB       0  [emitted]  [big]  /js/app
                                                                                             /css/app.css   147 kB       0  [emitted]         /js/app


 WAIT  Compiling...                                                                                            19:48:26

 95% emitting

 DONE  Compiled successfully in 86ms                                                                           19:48:26

       Asset    Size  Chunks                    Chunk Names
  /js/app.js  1.2 MB       0  [emitted]  [big]  /js/app
/css/app.css  147 kB       0  [emitted]         /js/app


 WAIT  Compiling...                                                                                            19:49:37

 95% emitting

 DONE  Compiled successfully in 121ms                                                                          19:49:38

       Asset    Size  Chunks                    Chunk Names
  /js/app.js  1.2 MB       0  [emitted]  [big]  /js/app
/css/app.css  147 kB       0  [emitted]         /js/app

然后一切正常。 (Laravel 5.5.3)

【讨论】:

【参考方案6】:

我也有同样的问题。禁用缓存、删除缓存和视图无济于事。我正在使用 Laravel 5.4 在共享托管网站上进行开发。

此视频的 cmets https://www.youtube.com/watch?v=pTVCW5k4piU 建议 npm install 和 npm run 监视。按照此页面上的说明https://ferugi.com/blog/nodejs-on-godaddy-shared-cpanel/ 我能够让 npm install 工作,但 npm run watch 给了我错误。

看起来 Vue 组件将成为我想做的最好的解决方案,但如果我不能让它们为我工作,我将不得不使用 AJAX。

【讨论】:

此页面 (laracasts.com/discuss/channels/elixir/…) 显示 package.json 文件中的 cross-env 路径缺少 dist,因此对于我的 package.json 文件中的所有 cross-env 实例,我将 cross -env/dist/ 即 "dev": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config =node_modules/laravel-mix/setup/webpack.config.js”,完成后,npm run watch 对我有用。【参考方案7】:

您是否尝试从浏览器(F12)打开您的控制台,然后转到网络并检查并取消选中禁用缓存,然后重新加载您的页面。您的浏览器正在使用您的旧存储文件。

【讨论】:

也为我工作。但这只是我解决的问题吗?我的意思是..如果其他人没有禁用缓存,他们仍然能够正确地看到页面吗?

以上是关于Laravel Example.vue 不更新的主要内容,如果未能解决你的问题,请参考以下文章

laravel 中的 Javascript 函数未定义

Vue2 在 Laravel 5.4 中没有变化

Vue js 无法在 Laravel 5.4 中渲染组件

text 接下来和前la laravel

php Usar la clase Db en Laravel para hacer consultas a la base de datos

markdown Para definir布局de la forma tradicional con Blade en Laravel usamos la directiva @yield de es