Nginx音频文件(wav / ogg / mp3)不起作用

问题描述 投票:0回答:1

在开发环境中正常工作时,产品上的音频无法正常工作(Angular 7)。

产品配置(VPS):

  • Ubuntu 18
  • Nginx
  • 让我们加密

AudioService:

export class AudioService {

    audio = new Audio();

    constructor() { }

    isPlaying() {
        return this.audio.currentTime > 0 && !this.audio.paused && !this.audio.ended && this.audio.readyState > 2;
    }

    play(name: string): void {
        this.audio.src = `assets/audio/${name}`;
        this.audio.crossOrigin = 'anonymous';
        this.audio.load();

        if (!this.isPlaying()) {
            this.audio.play();
        }
    }

    pause(): void {
        if (this.isPlaying()) {
            this.audio.pause();
        }
    }
}

CORS在Node.js端启用(使用Nestjs)。 main.ts

app.enableCors();

Chrome日志:

未捕获(承诺)的DOMException:无法加载,因为没有找到了受支持的源。

Firefox日志:

NotSupportedError:src属性指示的媒体资源或分配的媒体提供者对象不合适。

查看网络控制台,我们可以看到带有:的myaudio.wav:

状态码:206部分内容

注意:加载图像效果很好!

编辑:

Nginx配置/ etc / nginx / sites-available / mywebsite

# Redirection
server {
   # if ($host = mywebsite.com) {
   #     return 301 https://$host$request_uri;
   # } # managed by Certbot

    listen 80;
    listen [::]:80;
    server_name mywebsite.com www.mywebsite.com;
    return 301 https://$host$request_uri;
    #return 404; # managed by Certbot

}

# Config
server {
     server_name mywebsite.com www.mywebsite.com;

     root /home/foo/mywebsite/gui;

     index index.html index.htm;

     location / {
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host $http_host;
       proxy_set_header X-NginX-Proxy true;
       proxy_pass    http://my.ip:3000/;

       # Websocket
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
    }

    if ($host = 'www.mywebsite.com') {
       return 301 https://mywebsite.com$request_uri;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mywebsite.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mywebsite.com/privkey.pem; # managed by Certbot
}

在开发环境localhost:4200 / assets / audio / myaudio.wav上运行正常

在生产环境https://mywebsite.com/assets/audio/myaudio.wav→返回主页上

虽然https://mywebsite.com/assets/image.jpg→正常工作

仅音频不起作用。

javascript node.js nginx audio vps
1个回答
0
投票

max_ranges设置为0。

您的情况,看起来像这样:

max_ranges

意味着该规则适用于每个location ~ \.wav$ { max_ranges 0; } 文件,无论它们位于何处。

© www.soinside.com 2019 - 2024. All rights reserved.