脚本标签中的Javascript在Nginx代理通过之后无法执行

时间:2019-01-31 03:22:39

标签: javascript html nginx nuxt.js

我有一个由Nuxtjs构建的网站,该网站在nginx proxy_pass后面运行。

假设Nuxtjs站点位于http://10.001.002.003/,主要站点为http://example.com。这是example.com的nginx配置

        location /main-page/ {
            proxy_pass http://10.001.002.003/; #this is the Nuxt site
        } 

         location /api/ {
            rewrite /api/(.*) /$1  break;
            proxy_pass https://api.example.com/;
        }

        location / {
            root /home/www/html/example/dist;
            try_files $uri $uri/ /index.html;
            #index index.html;
        }

我在http://10.001.002.003/_nuxt/script1.js有一个脚本,该脚本又可以从http://example.com/main-page/_nuxt/script1.js进行访问

这是问题所在,如果我浏览到http://example.com/main-page,则脚本不会执行。但是,如果我浏览到http://10.001.002.003,它会起作用。

这是html

<head>
<link rel="preload" href="http://example.com/main-page/_nuxt/script1.js" as="script">
</head>

<body>
<script src="http://example.com/main-page/_nuxt/script1.js" defer></script>
</body>

1 个答案:

答案 0 :(得分:0)

(1):传递请求标头:

location /main-page/ {
    proxy_pass http://10.001.002.003/; #this is the Nuxt site
    proxy_pass_request_headers on;
}

(2):在nuxt.config.js中将基础添加到路由器:https://nuxtjs.org/api/configuration-router#base

router: {
    base: '/main-page/',
},