在s3上托管角度2应用程序,无法显示本地图像

时间:2017-03-25 14:14:38

标签: angularjs angular amazon-s3 routing angular-cli

我在s3上主持一个角度2的应用程序。我在s3存储桶上使用重定向规则,如answer中所定义。

<RoutingRules>
  <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <HostName>yourdomainname.com</HostName>
      <ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
    </Redirect>
  </RoutingRule>
</RoutingRules>

我的角度应用程序然后使用html5路由来匹配重定向规则:

在app.module.ts中:

RouterModule.forRoot(appRoutes, { useHash: true })

此组合效果很好,但在网站的资源文件夹中显示图像除外。这是在我的导航栏中:

<img src="./assets/logo.png" id="group-ed-logo" />

我正在使用angular-cli,它在angular-cli.json中有以下内容:

"assets": [
        "assets",
        "assets/logo.png",
        "favicon.ico",
        "logo.png"
      ],

编辑:我已将logo.png添加到上面,并将logo.png文件放在src文件的根目录下,然后使用:

<img src="logo.png" id="group-ed-logo" />

然后显示徽标。将图像放在资源文件夹中会更整洁。但是,使用html 5路由时,angular-cli当前可能不支持文件夹中的资产。

如果文件位于assets目录中,那么我找不到404 url​​:“http://www.myurl.com/#/assets/logo.png”。

1 个答案:

答案 0 :(得分:0)

对于文件夹,在“创建文件夹”栏中,然后将文件添加到该存储桶中。

此外,如果您拖放整个dist文件夹,您可能正在查看AWS UI上dist文件夹的内部,而没有意识到您在dist文件夹中。仅复制dist文件夹的内容,而不是dist文件夹。 - 这件事发生在我身上。