无法从本地服务器为 cesium 查看器呈现 css

Cannot render css for cesium viewer from local server

我正在尝试使用 node.js 和 express(通过 npm 下载的 cesium 1.57)从本地开发服务器渲染基本的 cesium 查看器。当 CSS 从 cesium 的服务器加载时,页面正确加载,但当我尝试从我的 node_modules 文件夹本地加载它时,页面加载不正确。我想要文件服务器端,这样我最终可以更改信息框的显示和某些沙箱设置,以适应我想要构建的应用程序。

这个有效:

index.html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>mapsTest</title>
    <script src="/scripts/Cesium.js"></script>
    <link href="https://cesiumjs.org/releases/1.57/Build/Cesium/Widgets/widgets.css" rel="stylesheet" />
    <!-- <link type=text/css href='/styles/widgets.css'></link> -->
  </head>
  <body>
    <div id="cesiumContainer" style="width: 100%; height:100%"></div>
    <script>
      Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJhYzhjNjk0My04MzNjLTQyZTItOWRkOS1lZmQxYjE2YzM4NDYiLCJpZCI6MTAyMTYsInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1NTU5NjMzNjB9.DSk7rCttQeOvYyCnuesEtoiA8OUSGwitJaiBUUeqlxw';
      var viewer = new Cesium.Viewer('cesiumContainer');
    </script>
  </body>
</html>

虽然这不起作用:

index.html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>mapsTest</title>
    <script src="/scripts/Cesium.js"></script>
    <!-- <link href="https://cesiumjs.org/releases/1.57/Build/Cesium/Widgets/widgets.css" rel="stylesheet" /> -->
    <link type=text/css href='/styles/widgets.css'></link>
  </head>
  <body>
    <div id="cesiumContainer" style="width: 100%; height:100%"></div>
    <script>
      Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJhYzhjNjk0My04MzNjLTQyZTItOWRkOS1lZmQxYjE2YzM4NDYiLCJpZCI6MTAyMTYsInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1NTU5NjMzNjB9.DSk7rCttQeOvYyCnuesEtoiA8OUSGwitJaiBUUeqlxw';
      var viewer = new Cesium.Viewer('cesiumContainer');
    </script>
  </body>
</html>

app.js: 设置获取本地 css 文件的路径

app.use('/styles', express.static(__dirname + '/node_modules/cesium/Build/CesiumUnminified/Widgets'));

app.get('/styles/widgets.css', function(req, res) {
    res.sendFile(__dirname + '/node_modules/cesium/Build/CesiumUnminified/Widgets/widgets.css');
});

我试过将从cesium css link中提取的代码复制并粘贴到我的widgets.css本地副本中,但它仍然不起作用,所以我想知道这是否与 node/express 加载 css 文件的方式有关?当我加载页面时,firefox 或 chrome 控制台没有错误。

我认为您可能只是在 link 中缺少 rel="stylesheet"

另外 type="text/css" 缺少 double-quotes。