X Tutup
Skip to content

Commit 27dbd2d

Browse files
committed
fix(compiler): load style urls in runtime mode correctly
Closes #4952
1 parent ed4826b commit 27dbd2d

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

modules/angular2/src/core/compiler/template_normalizer.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ export class TemplateNormalizer {
5555
var allStyles = templateMeta.styles.concat(visitor.styles);
5656

5757
var allStyleAbsUrls =
58-
visitor.styleUrls.map(url => this._urlResolver.resolve(templateAbsUrl, url))
59-
.concat(templateMeta.styleUrls.map(
60-
url => this._urlResolver.resolve(directiveType.moduleUrl, url)));
61-
allStyleAbsUrls = ListWrapper.filter(allStyleAbsUrls, isStyleUrlResolvable);
58+
ListWrapper.filter(visitor.styleUrls, isStyleUrlResolvable)
59+
.map(url => this._urlResolver.resolve(templateAbsUrl, url))
60+
.concat(ListWrapper.filter(templateMeta.styleUrls, isStyleUrlResolvable)
61+
.map(url => this._urlResolver.resolve(directiveType.moduleUrl, url)));
6262

6363
var allResolvedStyles = allStyles.map(style => {
6464
var styleWithImports = extractStyleUrls(this._urlResolver, templateAbsUrl, style);

modules/angular2/test/core/compiler/template_normalizer_spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,14 @@ import {TEST_PROVIDERS} from './test_bindings';
2727
export function main() {
2828
describe('TemplateNormalizer', () => {
2929
var dirType: CompileTypeMetadata;
30+
var dirTypeWithHttpUrl: CompileTypeMetadata;
3031

3132
beforeEachBindings(() => TEST_PROVIDERS);
3233

3334
beforeEach(() => {
3435
dirType = new CompileTypeMetadata({moduleUrl: 'package:some/module/a.js', name: 'SomeComp'});
36+
dirTypeWithHttpUrl =
37+
new CompileTypeMetadata({moduleUrl: 'http://some/module/a.js', name: 'SomeComp'});
3538
});
3639

3740
describe('loadTemplate', () => {
@@ -284,6 +287,16 @@ export function main() {
284287
expect(template.styleUrls).toEqual(['package:some/module/test.css']);
285288
}));
286289

290+
it('should resolve relative style urls in styleUrls with http directive url',
291+
inject([TemplateNormalizer], (normalizer: TemplateNormalizer) => {
292+
var template = normalizer.normalizeLoadedTemplate(
293+
dirTypeWithHttpUrl, new CompileTemplateMetadata(
294+
{encapsulation: null, styles: [], styleUrls: ['test.css']}),
295+
'', 'http://some/module/id');
296+
expect(template.styles).toEqual([]);
297+
expect(template.styleUrls).toEqual(['http://some/module/test.css']);
298+
}));
299+
287300
it('should normalize ViewEncapsulation.Emulated to ViewEncapsulation.None if there are no stlyes nor stylesheets',
288301
inject([TemplateNormalizer], (normalizer: TemplateNormalizer) => {
289302
var template = normalizer.normalizeLoadedTemplate(

0 commit comments

Comments
 (0)
X Tutup