## style下配置参数 在Angular项目中,处理静态资源如图片的路径时,确实会在TypeScript (TS) 和SCSS文件中有不同的处理方式。这种差异主要源于它们的工作环境和加载机制不同。 1. **TypeScript (TS) 中的路径**:当你在组件的TypeScript文件中引用静态资源(比如图片),你通常会使用相对路径或Angular提供的资源处理方式。例如,`src: "assets/img/1.JPG"`。这里,`assets`目录通常位于`src`目录下,并且在构建过程中会被复制到输出目录。Angular CLI默认配置会将`src/assets`设置为静态资源目录,因此可以直接通过相对路径访问。 2. **SCSS中的路径**:当在SCSS或其他CSS预处理器文件中引用背景图片等资源时,路径是相对于生成的CSS文件的位置来解析的。如果你的样式文件位于`src/styles`或者组件特定的样式文件夹内,直接使用`assets/img/1.JPG`可能无法正确指向资源位置。这是因为CSS/SCSS在编译后的路径解析与TypeScript代码中的路径解析规则不同。为了确保路径能够正确解析,通常需要从根目录开始指定路径,即使用`/assets/img/1.JPG`。这里的斜杠`/`代表了网站的根目录,在大多数情况下,这也是Angular应用部署的上下文路径。 简而言之,TypeScript中可以直接使用相对路径是因为它是在构建过程中由Angular CLI处理的,而SCSS/CSS中的路径需要考虑到最终生成的样式表如何被浏览器解析。为了避免路径问题,一种常见的做法是在SCSS/CSS中始终使用绝对路径(以`/`开头)指向`assets`文件夹内的资源。这样可以确保无论样式文件位于项目的哪个位置,资源都能被正确加载。 ``` // src/assets/styles/_variables.production.scss $ASSET_PATH: "assets"; ``` ``` @import "variables"; background-image: url("#{$ASSET_PATH}/img/background.png"); # angular.json中配置 "build": { "options": { "stylePreprocessorOptions": { # 配置路径,实现 @import "variables"; 直接导入 "includePaths": [ "projects/nova-stv/src/assets/style" ] }, "assets": [ "projects/nova-stv/src/favicon.ico", "projects/nova-stv/src/assets", { "glob": "**/*", "input": "./node_modules/@ant-design/icons-angular/src/inline-svg/", "output": "/assets/" } ], "styles": [ "projects/nova-stv/src/styles.scss", "node_modules/ng-zorro-antd/ng-zorro-antd.min.css", "@angular/material/prebuilt-themes/indigo-pink.css" ], }, "configurations": { "production": { # 配置打包时候的替换 "fileReplacements": [ { "replace": "projects/nova-stv/src/assets/styles/_variables.scss", "with": "projects/nova-stv/src/assets/styles/_variables.production.scss" } ], } } ``` ``` # 配置自定义参数(可选) --add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED --add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED -javaagent:C:\Users\11729\AppData\Roaming\WebStorm\active-agt.jar # 初始堆内存大小,建议设置为 1GB 或更高以避免频繁 GC -Xms1024m # 最大堆内存大小,根据你的 24G 内存设置为 4GB(即 4096MB) # 更大的堆内存有助于处理大型项目、索引、代码分析等 -Xmx4096m # JVM 编译缓存大小,增加后可提升编译性能(如 Kotlin、Java 编译器) -XX:ReservedCodeCacheSize=512m # 使用 G1 垃圾回收器(Garbage-First Garbage Collector) # 适合大堆内存环境,降低停顿时间,提高整体响应速度 -XX:+UseG1GC # 软引用对象在内存不足前保留的时间(单位:毫秒/每 MB 堆内存) # 数值越小,在内存紧张时会更快释放软引用资源 -XX:SoftRefLRUPolicyMSPerMB=50 # 并行编译线程数,数值应根据 CPU 核心数量调整(一般为物理核心数) -XX:CICompilerCount=8 # 当发生 OutOfMemoryError 时自动生成堆转储快照(heap dump) # 可用于后续分析内存泄漏问题 -XX:+HeapDumpOnOutOfMemoryError # 不省略异常栈信息(默认是 -XX:-OmitStackTraceInFastThrow) # 在调试或排查错误时更方便看到完整异常信息 -XX:-OmitStackTraceInFastThrow # 启用断言检查(对性能影响极小,主要用于调试) -ea # 禁用 Java IO 中路径规范化缓存(减少潜在缓存问题) -Dsun.io.useCanonCaches=false # 允许 HTTP 认证隧道(某些代理环境下可能需要) -Djdk.http.auth.tunneling.disabledSchemes="" # 允许 attach 自身进程(用于诊断工具,如 jattach) -Djdk.attach.allowAttachSelf=true # 关闭 Kotlin 协程调试模式(提升运行效率) -Dkotlinx.coroutines.debug=off # 忽略 JDK 模块系统的非法访问警告(JetBrains 工具常使用内部 API) -Djdk.module.illegalAccess=silent # 禁用版本检查(防止启动时联网验证更新) -Djbr.version.check.disabled=true --max-old-space-size=4096 ```