2016-07-26 18 views
1

有2種方式指定URL在Angular2組件裝飾的templateUrlstyleUrls性質的(至少):如何在Angular2中混合「絕對」和相關url?

  1. 「絕對」,或者更確切地說,相對於項目的根目錄(默認),和
  2. 相對於當前文檔/組件。

後者是通過使用組件相對路徑,即通過在裝飾器中包括moduleId: module.id來完成的。

但是我怎麼把這兩個結合起來呢?例如,我想用兩個不同的樣式文件,一個組件:即通常用於我的整個項目

  • my-general-project-styles.css在下面的例子中
  • 文件的位置應該是相對於

    1. 一個項目根(例如,在項目的根直接),以便在不同位置的許多文件都可以在它的中心位置訪問
  • 一個我的具體用於以下
  • 文件位置的示例我的電流分量
    • my-specific-component.styles.css應該是相對於當前文件/組件,以在文件和其相關聯的樣式(和模板,等等)可以圍繞容易地移動
  • 如:

    @Component({ 
        moduleId: module.id, // I'm not sure if I should still use this 
        template: '<h1>My Component</h1>', 
        styleUrls: ['my-general-project-styles.css', 'my-specific-component-styles.css'] 
    }) 
    export class MyComponent {} 
    

    順便說一句,我使用的是CommonJS的模塊。

    回答

    2

    結果比我預期的要簡單...只需在要與項目根目錄相關的網址前放置一個'/',例如,

    @Component({ 
        moduleId: module.id, 
        template: '<h1>My Component</h1>', 
        styleUrls: ['/my-general-project-styles.css', 'my-specific-component-styles.css'] 
    }) 
    export class MyComponent {} 
    
    0

    該解決方案對我無效。我使用角2.0.3 - 自你的帖子後的任何變化?

    是否工作:

    @Component({ 
    moduleId: module.id, 
    selector: "process-list", 
    templateUrl: "processList.component.html", 
    styleUrls: ["/Content/processList.css"] 
    }) 
    

    作品:

    @Component({ 
    moduleId: module.id, 
    selector: "process-list", 
    templateUrl: "processList.component.html", 
    styleUrls: ["../../../Content/processList.css"] 
    })