在angular 4 cli项目中添加htaccess文件以添加重写规则?

时间:2017-12-18 11:20:02

标签: angularjs angular

我已完成角度项目。现在我想用htaccess文件完全改变一些url格式强制。所以我应该把htaccess文件放在哪里? 我已尝试过像下面的路径:

/opt/lampp/htdocs/GreatColoradoHomes
/opt/lampp/htdocs/GreatColoradoHomes/src
/opt/lampp/htdocs/GreatColoradoHomes/src/app

3 个答案:

答案 0 :(得分:5)

github issue

中有答案
  

将.htaccess放入src文件夹(is src/.htaccess的最终路径)

     

将其添加到资产数组中的angular-cli.json(例如favicon.ico)。

     

有类似的东西:
   "assets": [ "assets", "assets/images/favicon.ico", ".htaccess" ],

答案 1 :(得分:3)

.htaccess之外有src,您很可能会遇到以下错误,

发生未处理的异常:.htaccess资产路径必须以项目源根开头。

正确的方法是这样,

           "assets": [
              "src/favicon.ico",
              "src/assets",
              "src/.htaccess"
            ],

请确保将您的.htaccess文件放在src下。

enter image description here

使用上述设置,运行build时,您会在.htaccess中得到dist

enter image description here

答案 2 :(得分:2)

您还可以通过在键dist上的package.json中定义构建命令,例如在构建后将文件复制到scripts文件夹中

"buildProd": "ng build --prod  && cp ./.htaccess ./dist/project-name/.htaccess",

将文件.htaccess复制到主projet文件夹(不是src),并由npm run buildProd运行build命令来创建dist

这种方法不会将服务器文件引入角度构建步骤(它在“外部”执行)。