html Chart.js完全本地模式

irtuqstp  于 2024-01-04  发布在  Chart.js
关注(0)|答案(1)|浏览(178)

我最近发现了使用Chart.js库轻松创建图表的可能性。我已经在我的测试网站上添加了必要的元素,使用在线链接来评估库,一切都正常工作。
当我试图在本地使用整个Chart.js库时,问题就出现了。
我按照官方网站上的指南:
1.使用“npm”在正确的目录中安装。
1.修改package.json文件。
1.修改index.html文件以使用以下命令在本地添加库:

  1. <script type="text/javascript" src="node_modules/chart.js/dist/chart.js"></script>

字符串
1.安装和添加所需的Moment.js库:

  1. <script type="text/javascript" src="node_modules/moment/moment.js"></script>


下面是index.html代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>MoNKER</title>
  7. <script type = "text/javascript" src="node_modules/chart.js/dist/chart.js"></script>
  8. <link rel="stylesheet" href="node_modules/css/bootstrap.min.css">
  9. <script type = "text/javascript" src="node_modules/jquery.js"></script>
  10. <script type = "text/javascript" src="node_modules/js/bootstrap.min.js"></script>
  11. <script type = "text/javascript" src="node_modules/moment/moment.js"></script>
  12. </head>
  13. <body class="p-3 m-0 border-0 bd-example m-0 border-0">
  14. <nav class="navbar navbar-dark bg-dark fixed-top">
  15. <style>
  16. .col-mon {
  17. text-align: center;
  18. border: 4px solid #ccc;
  19. padding: 10px;
  20. margin: 0 10px 10px 0;
  21. }
  22. .col-logo {
  23. text-align: right;
  24. margin: 0 auto;
  25. width: 100%;
  26. }
  27. </style>
  28. <div class="row">
  29. <div class="col-sm">
  30. <div class="container-fluid">
  31. <button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasDarkNavbar" aria-controls="offcanvasDarkNavbar" aria-label="Toggle navigation">
  32. <span class="navbar-toggler-icon"></span>
  33. </button>
  34. <div class="offcanvas offcanvas-end text-bg-dark" tabindex="-1" id="offcanvasDarkNavbar" aria-labelledby="offcanvasDarkNavbarLabel">
  35. <div class="offcanvas-header">
  36. <h5 class="offcanvas-title" id="offcanvasDarkNavbarLabel">Dark offcanvas</h5>
  37. <button type="button" class="btn-close btn-close-white" data-bs-dismiss="offcanvas" aria-label="Close"></button>
  38. </div>
  39. <div class="offcanvas-body">
  40. <ul class="navbar-nav justify-content-end flex-grow-1 pe-3">
  41. <li class="nav-item">
  42. <a class="nav-link active" aria-current="page" href="#">Home</a>
  43. </li>
  44. <li class="nav-item">
  45. <a class="nav-link" href="#">Link</a>
  46. </li>
  47. <li class="nav-item dropdown">
  48. <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
  49. Dropdown
  50. </a>
  51. <ul class="dropdown-menu dropdown-menu-dark">
  52. <li><a class="dropdown-item" href="#">Action</a></li>
  53. <li><a class="dropdown-item" href="#">Another action</a></li>
  54. <li>
  55. <hr class="dropdown-divider">
  56. </li>
  57. <li><a class="dropdown-item" href="#">Something else here</a></li>
  58. </ul>
  59. </li>
  60. </ul>
  61. <form class="d-flex mt-3" role="search">
  62. <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
  63. <button class="btn btn-success" type="submit">Search</button>
  64. </form>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. <div class="col-sm">
  70. <div class="col-logo">
  71. <img class="logo" src="img/monker.png" width="250px" height="auto">
  72. </div>
  73. </div>
  74. </div>
  75. </nav>
  76. <div class="container">
  77. </div>
  78. <br><br><br><br><br>
  79. <div class="row">
  80. <div class="col-sm">
  81. <div class="col-mon">
  82. <h2>Air</h2>
  83. <canvas id="airChart"> </canvas>
  84. </div>
  85. </div>
  86. <div class="col-sm">
  87. <div class="col-mon">
  88. <h2>CAMs</h2>
  89. <br><br><br><br><br><br>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </body>
  95. </html>
  96. <script>
  97. var airData = {
  98. labels: ['Tempo 1', 'Tempo 2', 'Tempo 3', 'Tempo 4', 'Tempo 5'],
  99. datasets: [
  100. {
  101. label: 'Kw 50',
  102. data: [40, 10, 50, 200, 20],
  103. borderColor: 'rgba(255, 99, 132, 1)',
  104. backgroundColor: 'rgba(255, 99, 132, 0.2)',
  105. },
  106. {
  107. label: 'Kw 100',
  108. data: [20, 30, 40, 50, 80],
  109. borderColor: 'rgba(75, 192, 192, 1)',
  110. backgroundColor: 'rgba(75, 192, 192, 0.2)',
  111. },
  112. ],
  113. };
  114. var ctx = document.getElementById('airChart').getContext('2d');
  115. var airChart = new Chart(ctx, {
  116. type: 'line',
  117. data: airData,
  118. options: {
  119. scales: {
  120. y: {
  121. beginAtZero: true
  122. }
  123. }
  124. }
  125. });
  126. </script>


这是文件路径和文件的图像(不包括“old”和“img”文件夹:


的数据
因此,我认为这仅仅是库的配置问题。提前感谢。
正如我之前提到的,我尝试了在线和离线两种模式,前者可以工作,而后者不行。尽管我使用HTML和JavaScript的时间很短,但我可能在安装软件包时犯了一个错误。

j2datikz

j2datikz1#

如果你使用的是“node_modules/chart.js/dist/chart.js”,你必须确保你的服务器可以访问那些要服务的文件,但是在节点模块中服务文件.由于安全原因,这是一个坏主意。
使用一个类似rollup的插件可以解决这个问题,将所有的js文件打包到一个文件中,这个文件可以放在sources目录中,并由服务器提供
在文档中,它指定您应该使用umd.js文件:https://www.chartjs.org/docs/latest/getting-started/integration.html#script-tag

相关问题