刷新我的角度页面会给我一个404服务器错误,如果我手动导航到搜索栏中的目录,它也会这样做。我是通过IIS服务器托管的。
只有当我用ng build --prod构建我的角度项目,然后将它上传到我的web服务器时,这个问题才会出现。许多人说您应该使用哈希方法,但是我不希望在我的url中显示散列,这是一个非常老的方法。有些人还说,我应该在我的<head>中更改我的<head>标记,但这是行不通的。
这是我index.html中的index.html标记,如果有帮助的话。
<head>
<!-- META DATA -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- APP -->
<title>SebastianElstadt</title>
<base href="/">
<link rel="icon" type="image/x-icon" href="assets/images/app-icon.png">
<!-- STYLES -->
<link rel="stylesheet" href="[fontawesome cdn]">
</head>我还使用了一个组件,如果输入的URL与我定义的任何路径不匹配,就会显示该组件。但它没有显示出来。
因此,总之,每当我刷新页面或在我的角度站点上的搜索栏中手动导航时,它都会显示一个404 Server错误页面。我不想用哈希方法。
发布于 2019-02-01 14:57:47
您可以通过创建一个web.config文件来解决这个问题:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
    <defaultDocument>
        <files>
            <clear />
            <add value="index.html" />
        </files>
    </defaultDocument>
    <rewrite>
      <rules>
        <rule name="AngularJS Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />   
          </conditions>
          <action type="Rewrite" url="/" logRewrittenUrl="true" />
        </rule>
      </rules>
    </rewrite>
 <security>
        <requestFiltering allowDoubleEscaping="true">
            <fileExtensions>
                <add fileExtension=".json" allowed="true" />
            </fileExtensions>
        </requestFiltering>
</security>
    <directoryBrowse enabled="true" />
<staticContent>
<remove fileExtension=".woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>
</system.webServer>
</configuration>.Net Core with Angular 4 : 404 error when I refresh the browser
发布于 2019-02-01 13:47:42
您应该签出https://angular.io/guide/deployment,以便部署checkout。它需要基于您的http服务器的特定配置。因此,例如,对于Apache,在项目根目录中需要下面的.htaccess文件
RewriteEngine On
    # If an existing asset or directory is requested go to it as it is
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
    RewriteRule ^ - [L]
    # If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html
发布于 2019-02-01 13:45:20
我不知道您使用的是哪个服务器,但是如果您不想使用散列方法,那么每个请求都必须重定向到运行角应用程序的index.html。
如果服务器找不到路由/您的/子/路由,并说"404未找到“。
https://stackoverflow.com/questions/54480750
复制相似问题