nencbskk 2023-11-11 10:26 采纳率: 0%
浏览 11

nginx静态资源地址问题

问题

nginx我的项目放在了nginx/html文件夹中,如

-- nginx
------html
----------项目一
----------项目二

于是我在nginx.conf中写了如下:

        location /项目一  {
            root html;
            index  index.html;
        }

        location /项目二  {
            root html;
            index  index.html index.htm;
        }

能够正确访问到各个项目,但是在访问静态资源的时候却所有项目的静态资源查找目录都是html。

request: "GET /js/app.c930e0fe.js HTTP/2.0", referrer: "网址/项目一"

期待访问的地址应该是html/项目一/js/app.c930e0fe.js,但是实际访问的是html/js/app.c930e0fe.js。

#尝试

尝试1

我尝试写了:

location /项目一 {
    alias html/项目一;
    index index.html;
}

location /项目二 {
    alias html/项目二;
    index index.html index.htm;
}

仍然没有奏效,在html文件夹找静态资源。

尝试二

我尝试通过referrer,在静态资源前面加上项目地址:

map $http_referer $referrer_path {
    "~^我的网址/(.*)/$" /$1;
}

成功获取了referrer_path。但是在静态资源前面加上这个referrer_path,却失败了。

尝试三

        location ~* \.(js|css|woff|jpg|png|woff2)$ {
            if ($request_uri ~ "^/([^?]*)") {
                    set $request_path $1;
                }

            if ($http_referer ~* "^我的网址/([^?]*)") {
                set $referrer_path $1;
            }
            set $resource_path "html/$referrer_path/$request_path";
            try_files =404 /$resource_path;
        }

写下这个代码后仍然到html文件夹寻找静态文件。

  • 写回答

2条回答 默认 最新

  • 创意程序员 2023-11-11 11:41
    关注

    试试以下任一:
    原始方案:同一个root可移到location前面,location后面的目录名以/结尾
    尝试1: alias目录名后面加/

    评论

报告相同问题?

问题事件

  • 修改了问题 11月11日
  • 修改了问题 11月11日
  • 创建了问题 11月11日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀