阅读 angular-cli 文档和有关堆栈溢出的一些讨论,我了解到,当使用生成的组件完成项目时,默认情况下内联样式将全部包含在构建中,但是当我构建项目时,似乎没有一个包括内联样式。
例如这个组件:
import { MenubarService } from '../../services/menubar-service/menubar.service'
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css'],
providers:[LoginService]
})
export class LoginComponent implements OnInit {
constructor(.......
Run Code Online (Sandbox Code Playgroud)
最终项目中不存在 login.component.css 文件。我注意到它有两个原因:
首先,我的应用程序的样式显然与我使用“ngserve”命令时的样式不同,其次是因为使用浏览器检查器元素,我找不到 css 的痕迹。
这是我的 angular-cli 的配置文件
{
"project": {
"version": "1.0.0-beta.18",
"name": "genioimprese"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"images",
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"test": "test.ts",
"tsconfig": "tsconfig.json",
"prefix": "app",
"mobile": false,
"styles": [
"styles.css",
"paper.css"
],
"scripts": [],
"environments": {
"source": "environments/environment.ts", …Run Code Online (Sandbox Code Playgroud) 我有一个使用 Angular 11 的 Chrome 扩展。我刚刚将其更新到 12,现在我得到了
拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src 'self' 'unsafe-eval'”。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-...”)或随机数(“nonce-...”)。请注意,除非存在“unsafe-hashes”关键字,否则哈希不适用于事件处理程序、样式属性和 javascript: 导航。
所以,我想如果它曾经在 Angular 11 中工作,那么应该可以在 Angular 12 中工作。
所以,在我的清单中我已经有:
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'
Run Code Online (Sandbox Code Playgroud)
我尝试将其添加unsafe-hashes到角度的index.html
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-hashes' 'sha256-oFP6B0o0upf5CwDxtOuL0J68WAdmyZUBtL/g8VBQ9wE='; style-src 'self'; base-uri 'self';">
Run Code Online (Sandbox Code Playgroud)
但这并不能解决该错误(甚至更多错误)
这是一个公共存储库,可以在此处找到具有更新的分支
有什么建议如何解决这个问题吗?