为什么我的浏览器会下载index.html而不是显示它?

时间:2014-12-09 11:26:41

标签: angularjs nginx

我尝试设置一个 Nginx 网络服务器,用于基于 AngularJS 提供SPA,并在index.html文件中设置单个入口点。< / p>

这是我的配置:

server {
    server_name aislc.dev;
    root        /var/www/aislc/dist;

    # API backend
    location ~ ^/api/(.*)$ {
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        include        /etc/nginx/fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME /var/www/aislc-api/index.php;
    }

    location / {
        try_files $uri /index.html;
    }

    types {
        text/cache-manifest appcache;
        application/json    js.map;
    }
}

当我尝试打开网站时,浏览器会下载一个名称和扩展名未知的文件,其中包含`index.html

的内容

index.html的内容:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="utf-8">
    <title>Test</title>
    <link href="app.css" rel="stylesheet"/>
</head>
<body>
    <p>Loading...</p>

    <script src="app.js" type="text/javascript" async></script>
</body>
</html>

Chrome屏幕截图

chrome

Firefox截图

firefox

我哪里错了?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案!

我删除了 types 部分,因为它是指令替换内置的mime类型的nginx而不是扩展它们。使用include方法:

    include mime.types;

    types {
            text/cache-manifest appcache;
            application/json    map;
    }