Я пишу приложение Chrome с помощью AngularJS. Я знаю, что при обращении к внешним изображениям вы должны выполнить XMLHttpRequest с перекрестным происхождением и служить им как blobs.
У меня есть куча внутренних изображений (ресурсов локального приложения), которые следуют шаблону, который я хочу отобразить в ngRepeat.
Я могу заставить изображения загружать статически просто отлично с чем-то вроде:
<img src="images/image1.png"/>
Но когда я пытаюсь использовать их в повторении так:
<div ng-repeat="item in myList">
<img ng-src="{{item.imageUrl}}"/>
</div>
Я получаю сообщение об ошибке для каждого изображения (хотя изображение из ошибки существует):
Refused to load the image 'unsafe:chrome-extension://hcdb...flhk/images/image1.png' because it violates the following Content Security Policy directive: "img-src 'self' data: chrome-extension-resource:".
Я смог успешно загрузить внешние ресурсы с помощью ng-src и XHR. Должен ли я следовать той же схеме для динамических загружаемых внутренних ресурсов?
Обновление - еще один простой пример
Начиная с простейшего приложения Chrome (https://github.com/GoogleChrome/chrome-app-samples/tree/master/hello-world), следующее будет работать вне приложения Chrome (в браузере), но не в пределах приложение Chrome:
index.html
<!DOCTYPE html>
<html ng-app ng-csp>
<head>
<title>Hello World</title>
<script src="js/angular.min.js"></script>
<script src="js/test.js"></script>
</head>
<body ng-controller="Ctrl">
<img ng-src="{{imageUrl}}"/>
</body>
</html>
test.js
function Ctrl($scope) {
$scope.imageUrl = 'hello_world.png';
}