Ionic 4 + Angular 6 PWA 样式不起作用/损坏

Len*_*y D 3 sass typescript ionic4 angular6

希望有人能在这里帮助我,

我有一个使用 Angular 6 pwa 的 Ionic 4 应用程序。我已经按照这篇文章中的步骤让它工作

https://www.joshmorony.com/create-a-pwa-with-angular-service-workers-in-ionic-4/

所有步骤都完成得很好,而且包构建和运行正确,没有错误。

但是我所有的控件特定样式都丢失了,例如

我的controll.component.scss

  app-my-contol {

      ion-content {
        background-color: var(--light-gray-lightest);
      }
      .my-class {
        padding:0;
        list-style: none;
        position: absolute;
        width: 100%;
        left: 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 您可以看到文件已正确散列,并且我没有 404 提示任何文件丢失。做一个正常的ionic cordova build没有--prod将使样式再次起作用。

任何帮助,将不胜感激!

编辑 - 快速更新。

所以缺少的样式似乎在 main_xxxxxxxxx.js 下面的示例片段中

var z = r.La({
            encapsulation: 0,
            styles: [["app-family-visit[_ngcontent-%COMP%]   .visit-details-family-view[_ngcontent-%COMP%]{margin-top:20px}@media (max-width:480px){app-family-visit[_ngcontent-%COMP%]   .visit-details-family-view[_ngcontent-%COMP%]{margin-top:10px}}app-family-visit[_ngcontent-%COMP%]   .visit-details-family-view[_ngcontent-%COMP%]   #title[_ngcontent-%COMP%]{margin-bottom:20px}app-family-visit[_ngcontent-%COMP%]   .datetime-md[_ngcontent-%COMP%]{padding-left:0}.verification_page[_ngcontent-%COMP%]{padding-top:15px}"]],
            data: {}
        });
Run Code Online (Sandbox Code Playgroud)

这个文件正在加载,但由于某种原因被忽略

另一个更新

有趣的是,在非 pwa 构建中,它在 main.js 中看起来像这样

/*!****************************************************************!*\
  !*** ./src/app/case/pages/family-visit/family-visit.page.scss ***!
  \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

module.exports = "app-family-visit .visit-details-family-view {\n  margin-top: 20px; }\n  @media (max-width: 480px) {\n    app-family-visit .visit-details-family-view {\n      margin-top: 10px; } }\n  app-family-visit .visit-details-family-view #title {\n    margin-bottom: 20px; }\n  app-family-visit .datetime-md {\n  padding-left: 0; }\n  .verification_page {\n  padding-top: 15px; }\n"

/***/ }),
Run Code Online (Sandbox Code Playgroud)

所以 pwa 构建[_ngcontent-%COMP%]内联添加这些标记

Pau*_*aul 5

从 Ionic 4 和 Angular 6 开始,您必须删除页面/组件标签。请参阅迁移到 Ionic 4 -> https://beta.ionicframework.com/docs/building/migration/#overview

页面/组件 Sass 不应再包含在页面/组件标签中,而应使用 Angular 的 @Component 装饰器的 styleUrls 选项

所以这不是一个错误,一切都按预期工作!所以请阅读迁移指南并删除包装器,一切都应该再次工作

  • 谢谢你!问题是我的项目不是迁移,它是一个新的 ionic 4 angular 6 项目并使用 CLI 构建我什至不知道元素选择器,直到我开始看到它们出现在我的样式表中。奇怪的是,在我将它放入 pwa 版本之前,它的行为是正确的,所以我确实认为还有更多。也许只是早期测试版的一些宿醉。 (2认同)