【问题标题】:Cannot render css for cesium viewer from local server无法从本地服务器为 cesium 查看器渲染 css
【发布时间】:2019-05-23 21:28:21
【问题描述】:

我正在尝试使用 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 链接中提取的代码复制并粘贴到我的本地 widgets.css 副本中,尽管它仍然无法正常工作,所以我想知道这是否与 node 的方式有关/express 加载 css 文件?加载页面时,Firefox 或 chrome 控制台中没有错误。

【问题讨论】:

    标签: node.js express cesium


    【解决方案1】:

    我认为您可能只是缺少链接中的rel="stylesheet"

    type="text/css" 也缺少双引号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 2021-06-18
      • 2017-07-02
      • 2019-10-27
      • 1970-01-01
      相关资源
      最近更新 更多