2
我正在構建使用Django作爲後端的Polymer.dart應用程序。 我想保留所有靜態文件在「/靜態/」目錄,或使用cdn服務器爲例。 但「pub build」爲腳本和其他資源製作相關URL。在「pub build」期間有什麼方法可以在url中注入絕對前綴?Dart資產的絕對網址。或在單獨的服務器/文件夾上提供資產
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變壓器的結果apropriate文件夾。生成的JS文件現在與* .html位於同一個目錄中。 我試圖把我的變壓器放在pubspec中的$ dart2js之後,但是在變壓器初始化步驟時pub build
會引發錯誤。所以我不能爲此做出變壓器。
你可以創建一個酒吧構建,增加了變壓器的所有請求前綴/更改您的HTML或CSS文件中的URL。 – Fox32 2014-10-10 16:20:35
你的意思是'your_package/static','your_package/web/static'或'your_package/lib/static。你可以在'lib/...'中使用'src'屬性引用資源的絕對URL。導入處理有點不同。 – 2014-10-10 20:30:40
我的意思是鏈接到生產中的資產html應該是靜態的,比如'src =「http://eaxmple.com/static/js/my_app.dart.js」'或者與web根目錄相關。 – 2014-10-15 10:13:46