5

浏览器扩展是指 WebExtension https://developer.mozilla.org/ru/Add-ons/WebExtensions

我尝试将其仅用于本地文件并得到:

CORS 策略已阻止从源“null”访问“file:///”处的导入资源:无效响应。因此,Origin 'null' 不允许访问。

WebExtension(特别是用于弹出设置)没有特定的服务器。他们的链接就像 chrome-extension://pkngljipephggpkgjfkjhggmcjfmhgkn/page.html

4

2 回答 2

0

Vulcanize 和 Crisper 工具可用于解决 CORS/CSP 问题。

这里有很多操作方法的详细信息:https ://www.polymer-project.org/1.0/docs/tools/optimize-for-production

这两个工具都有 Gulp 插件,所以你可以像这样编写构建步骤:

gulp.task('vulcanize', function() {
  return gulp.src('index.html')
    .pipe(vulcanize({
      inlineScripts: true,
      inlineCss: true
    }))
    .pipe(crisper())
    .pipe(gulp.dest('popup'));
});
于 2018-03-10T16:29:56.740 回答
0

生产一年后更新的答案

我使用了 Polymer 1 和 Polymer 3。两者都需要创建整个建筑生态系统。在 Polymer 3 的情况下,由于错误,非常非常困难!文档polymer-build(不要阅读文档,直接阅读源代码)


刚刚测试,这里是答案。很快:是的,但有并发症。

仅插入一个 Polymer 元素后,出现许多错误:拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'”。启用内联执行需要“unsafe-inline”关键字、哈希(“sha256-AYzkEOy570v3pgwSjL36msfNQGIBNCoa6ppxJtI8Fag=”)或随机数(“nonce-...”)。

要求扩展 Chrome 31+ - 所以我不能更改内容安全策略。我不能<script>对任何模板使用内联标签。

因此,我通过将所有内联脚本移动到单独的脚本来修改 Polymer 的代码,并且它起作用了。

缺点:如果要更新 Polymer,我无法自动更新代码。每次我需要重写它的代码。

于 2017-05-20T11:28:22.703 回答