我正在构建使用Django作为后端的Polymer.dart应用程序。 我想将所有静态文件保存在“/ static /”目录中,或者使用cdn服务器。 但是“pub build”为脚本和其他资产创建了相对的URL。在“pub build”期间,有没有办法在url中为release发布注入绝对前缀?
UPD: 最简单的解决方案是制作变压器:
import 'dart:async';
import 'package:barback/barback.dart';
class UrlTransformer extends Transformer {
UrlTransformer.asPlugin();
String get allowedExtensions => '.html';
Future apply(Transform transform) {
return transform.primaryInput.readAsString().then((contents) {
transform.addOutput(new Asset.fromString(
transform.primaryInput.id,
contents.replaceAllMapped(
new RegExp(r'src="([^\{"]+)"'),
(Match m) => "src=\"/static/${m[1]}\"").replaceAll("href=\"", "href=\"/static/")
)
);
});
}
}
但我不知道如何将dart2js变换器的结果放到适当的文件夹中。生成的JS文件现在与* .html位于同一目录中。
我试图在pubspec中的$ dart2js后放置我的变换器,但是在变压器初始化步骤pub build
时会抛出错误。所以我不能为此制造变压器。
答案 0 :(得分:0)