2017-09-02 124 views
1

我在Angular 4中创建了一个新组件,并添加了它的路径'account'。 当我运行ng serve主页打开,并有一个帐户页面的链接。 点击帐户页面链接帐户页面打开。如果我刷新页面,它会起作用。404在路线角度刷新4,nginx服务器和apache

问题是,当我使用ng build进行构建并将构建上传到apache。如果我点击“帐户”链接,帐户页面打开。 但是,如果我刷新或尝试直接打开帐户路线,我得到404错误。

如果我添加'使用散列',那么它与'#'一起工作,但我不想这样做。

我使用的角度4.2.4

+0

所有你需要做的是改变你的apache .htaccess文件,使所有的请求服务index.html的外商投资企业。进一步的路由由加载的角色脚本完成。 –

回答

3

这是您刷新了您的应用程序时,因为浏览器内的实际地址更新有一个404错误的正常行为(和不#/ hashbang方法)。默认情况下,HTML5历史记录用于在Angular2中重用。

如果您不希望发生404错误,则需要将服务器更新为 ,为您定义的每个路径路径提供index.html文件。

您可以检查此Link如何在Apache上部署Angular应用程序。

如何在Apache处理的index.html

This can be achieved by adding a .htaccess file (in the same directory where the index.html resides) with the following contents. 

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.html$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.html [L] 
</IfModule> 
+0

不,没有工作。我已经尝试过,现在在WAMP服务器上 – Sandhu

+0

@桑德胡你检查链接有一个详细的视图,我刚刚发布的一部分,它应该工作,如果你只是检查这也https://stackoverflow.com/a/41349403/ 2708210 –