【问题标题】:Angular Material Components Absent on Deployment部署时缺少 Angular Material 组件
【发布时间】:2020-10-23 08:45:44
【问题描述】:

我正在为我的 Web 开发课程构建一个带有 Angular 的 Web 应用程序。此应用程序使用角度材料库。今天,我尝试将我的 Angular 应用程序部署在我用 node js 从头开始​​构建的服务器上(我使用的是 http,以防万一)。我成功运行了ng build --prod,创建了一个 dist 文件夹,并部署了我的应用程序。

问题是,当我运行应用程序的部署版本时,角度材质组件不起作用。最好的解释方式是用图片。

这是应用在开发模式下运行时的外观:

这是应用在服务器上部署和运行时的样子:

所有材质组件都消失了/无法正确显示。为什么会这样?我必须做一些特别/重要的事情来将库/模块包含在我的应用程序的构建版本中吗?我在控制台中收到以下警告:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:3000/styles.80f2d8e9e393f3581758.css".

非常感谢任何帮助!

【问题讨论】:

  • 您在控制台或开发工具的网络选项卡上是否有任何错误?尤其是与未找到的 css 文件相关的错误
  • @The Fabio 是的,有一个警告:资源解释为样式表,但使用 MIME 类型 text/html 传输:“localhost:3000/styles.80f2d8e9e393f3581758.css”。
  • 你用什么做后端?
  • @The Fabio 我从头开始构建的一个节点 js 服务器。它使用 http 库(不是 express)

标签: angular angular-material


【解决方案1】:

假设您使用 dist 文件夹而不更改其内容,我很确定这是一个后端问题。

如果您的 ng 应用程序构建正确,则可以提供服务。

是您的 BE 出现问题或配置错误。在 google 上查看如何启动一个简单的 nodejs 服务器以将 dist 文件夹作为静态文件提供服务。 它应该工作。然后你必须解决你的后端问题,但这是一个单独的问题......

这个问题说明了如何做到这一点: Using node.js as a simple web server

【讨论】:

  • 你是对的,它是后端。我在标题中发送了错误的 Content-Type。感谢您的帮助!
【解决方案2】:

我想通了!万一其他人犯了同样的错误,那是 Content-Type 响应标头的问题。我把它设置为“text/html”而不是“text/css”。

【讨论】:

    猜你喜欢
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2019-12-16
    • 2015-06-25
    • 1970-01-01
    • 2018-12-17
    相关资源
    最近更新 更多