如何从" ng serve"提供静态目录

时间:2017-06-20 07:27:02

标签: angular

我可以问一下webpack dev server config是否有类似的配置:

  returnToPreviousPage(){
         this.router.navigate([this.returnUrl], { queryParams: { customerId: this.caId } });
    }

我想从静态目录提供静态文件,就像webpack dev服务器如何提供文件一样。 感谢

3 个答案:

答案 0 :(得分:19)

是的确有。

在Angular应用的根目录中查找名为Asc(Mid(html_source, position, 1))的文件。有一个名为" assets"的条目。在这里添加静态目录。他们下面的任何内容都将通过angular.json直接提供。当你上线时,所有这些文件都将被复制到/ dist目录,这样它们也可以在生产环境中提供。

ng serve

P.S。是的,我知道你不能真正评论JSON。给我一个休息时间。

答案 1 :(得分:1)

此答案已针对Angular 8+进行了验证。如果您的静态文件在sourceDir之外(在angular.json文件中找到),例如在node_modules中的某个位置,则您需要向angular.json文件中添加以下内容:

[['\\001SMPL_1.csv', '\\002SMPL_1.csv'], ['\\001SMPL_2.csv', '\\002SMPL_2.csv'], ['\\001SMPL_3.csv', '\\002SMPL_3.csv'], ['\\001SMPL_4.csv', '\\002SMPL_4.csv'], ['\\001SMPL_5.csv', '\\002SMPL_5.csv'], ['\\001SMPL_6.csv', '\\002SMPL_6.csv']]

执行此操作后,无论何时构建项目或使用ng serve, root: "", architect: { build: { options:{ outputPath: "dist/smartui", assets: { { "glob": "**/*", "input": "node_modules/@cruxcode/smartpdf", "output": "smartpdf/" } } } } } 中的资产都将被复制到您在angular.json文件中提到的input,如上所示。构建或提供服务后,output目录将出现在output目录中。

outputPathglob目录中匹配。

您的资产将位于input。在上面的示例中,我可以按以下方式访问代码中的资产 output/

答案 2 :(得分:0)

可以。在angular.json中,可以使用名为assets的条目。您包含在assets值数组中的任何文件或目录,都将通过ng serve提供。您在projects/<your-project>/architect/build/options/assets中添加的所有内容都将在所有构建配置中提供,并包含在生产构建的dist目录中。

如果您希望某些内容仅在开发或测试期间可用,则可以使用Build Configurations。默认情况下,您有一个projects/ /architect/build/configurations/production部分。因此,您可以添加自己的部分,例如../build/configurations/dev(也许最初是复制production部分中的内容)。然后,您可以在此处添加assets条目。这些资产在生产配置中将不可用。

要将ng serve启动到特定配置,请使用--configuration参数。例如,要匹配dev配置:

ng serve --configuration=dev

免责声明:没有经过以上测试-仅阅读手册:-)