How to install Chart.js in Laravel? ("Uncaught ReferenceError: Chart is not defined")
How to install Chart.js in Laravel? ("Uncaught ReferenceError: Chart is not defined")
我不知道,我花了多少时间寻找这个问题的解决方案。我想在我的 Laravel 项目中使用 Chart.js,所以我按照 here.
中描述的说明进行操作
composer require fx3costa/laravelchartjs
(已运行)
Fx3costa\LaravelChartJs\Providers\ChartjsServiceProvider::class
(添加到正确的地方)
npm i chart.js
(用于安装chart.js)
- 在我的控制器中 blade 我使用了示例 1 中的代码(折线图/雷达图)
之后出现错误:Uncaught ReferenceError: Chart is not defined
。在那之前和之后,我尝试了不同的解决方案,但总是出问题,我认为这个应该适合我。我可能错过了一些明显但非常重要的东西。
你有什么想法吗?
使用 npm
安装后,我是否应该向 webpack.mix.js
或 bootstrap.js
文件中添加一些内容?
编辑:
如果我将 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.js"></script>
放入 blade 的 head
部分,一切正常,但我使用 laravel-mix
来使用语言环境文件而不是link.
为什么你不复制
的内容
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.js"></script>
在您本地的文件中,例如:/public/js/chart.js
并将其加载到 head
<script src="{{asset('js/chart.js')}}"></script>
Chart.js
必须在 之前加载 内容才能在任何 Controller
中使用它。我正在加载我的 laravel-mix
变量 after HTML 内容(因为它包含一些像 jQuery 等大的库),所以这就是为什么它不能'没用。
解决方案:
在我的文档末尾,我还有我以前的脚本
<script src="{{ asset('js/app.js') }}" ></script>
但是现在我用一行代码在resources/js
目录下新建了一个loadBefore.js
文件:
require('chart.js/dist/chart.js');
如果有任何理由将任何其他 javascript 代码放在那里,将很容易放在那里。
我也像这样将此文件添加到 webpack.mix.js
:
mix.js('resources/js/loadBefore.js', 'public/js').sourceMaps();
当然,最后我将此脚本添加到 blade 的头部部分:
<script src="{{ asset('js/loadBefore.js') }}"></script>
现在一切正常,我正在使用我的 Laravel 文件 chart.js
文件中已经存在的内容。我不知道,有人知道更简单的解决方案,所以现在我接受我的回答,但我仍然愿意接受建议。
我不知道,我花了多少时间寻找这个问题的解决方案。我想在我的 Laravel 项目中使用 Chart.js,所以我按照 here.
中描述的说明进行操作composer require fx3costa/laravelchartjs
(已运行)Fx3costa\LaravelChartJs\Providers\ChartjsServiceProvider::class
(添加到正确的地方)npm i chart.js
(用于安装chart.js)- 在我的控制器中 blade 我使用了示例 1 中的代码(折线图/雷达图)
之后出现错误:Uncaught ReferenceError: Chart is not defined
。在那之前和之后,我尝试了不同的解决方案,但总是出问题,我认为这个应该适合我。我可能错过了一些明显但非常重要的东西。
你有什么想法吗?
使用 npm
安装后,我是否应该向 webpack.mix.js
或 bootstrap.js
文件中添加一些内容?
编辑:
如果我将 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.js"></script>
放入 blade 的 head
部分,一切正常,但我使用 laravel-mix
来使用语言环境文件而不是link.
为什么你不复制
的内容<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.js"></script>
在您本地的文件中,例如:/public/js/chart.js 并将其加载到 head
<script src="{{asset('js/chart.js')}}"></script>
Chart.js
必须在 之前加载 内容才能在任何 Controller
中使用它。我正在加载我的 laravel-mix
变量 after HTML 内容(因为它包含一些像 jQuery 等大的库),所以这就是为什么它不能'没用。
解决方案:
在我的文档末尾,我还有我以前的脚本
<script src="{{ asset('js/app.js') }}" ></script>
但是现在我用一行代码在resources/js
目录下新建了一个loadBefore.js
文件:
require('chart.js/dist/chart.js');
如果有任何理由将任何其他 javascript 代码放在那里,将很容易放在那里。
我也像这样将此文件添加到 webpack.mix.js
:
mix.js('resources/js/loadBefore.js', 'public/js').sourceMaps();
当然,最后我将此脚本添加到 blade 的头部部分:
<script src="{{ asset('js/loadBefore.js') }}"></script>
现在一切正常,我正在使用我的 Laravel 文件 chart.js
文件中已经存在的内容。我不知道,有人知道更简单的解决方案,所以现在我接受我的回答,但我仍然愿意接受建议。