关于nginx配置 获取静态资源

发布于 2022-09-02 20:40:00 字数 636 浏览 45 评论 0

比如一个本地项目,启动服务后应该是 127.0.0.1: 端口号 ,用这样的方式能访问,然后我在nginx的vhosts文件夹下面新建了一个 ‘a.xxxx.com.conf’的文件,在这里配置完以后,那么我本地的项目就可以通过a.xxxx.com访问。

现在问题是在项目里有存放静态文件的目录,那么我要怎么做才能访问到静态文件呢?小白一枚,希望大神能告诉下怎么解决,或者帮贴个代码参考一下。

比如我想获得web下的javascript目录下的js文件,目前我通过在vhosts下的a.xxxx.com.conf这么配置的方式可以获取到。如下:
location ~*/javascript/{

root /Users/xxx/WebstormProjects/myprojects/web/javascript

}

但是我想实现的方式其实是这样的,比如我想通过img.xxx.com/javascript/a.js,这样的方式能获取到web下的资源该如何做呢?

谢谢谢谢。再结合我描述的看下下图.
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

半岛未凉 2022-09-09 20:40:00

为了回答你的问题,特意注册了一账号

location /c/ {

  alias /a/

}

如果访问站点http://location/c访问的就是/a/目录下的站点信息。

嗼ふ静 2022-09-09 20:40:00

怎么没人回答啊?
我也不是很懂,稍微说点我明白的吧

location /img {
    root /www/abc 
}

意思是访问 a.xxxx.com/img 时,到/www/ abc 中查找,就相当于图片在/www/abc/img 下
手机打的,不详细见谅,仅供参考

我们只是彼此的过ke 2022-09-09 20:40:00

你这个姿势本身就不太对。你是不是有点感觉,访问一个URL,既想让他访问到你的服务,又想让他访问到你的静态文件。也许你会说,我的服务的URL和静态文件的URL不一样啊。问题就在这里,对于WEB服务器,他怎么知道不一样呢,你的服务URL与静态资源的URL有何不同?如果说的出不同,那么就是你的配置文件的规则。

通常情况下,在动态程序中,人们是这样设定的规则:

方案1

  • 请先尝试这个URL是不是文件,是不是文件夹,如果是,请返回静态资源

  • 如果不是,请交给动态程序(服务)来处理

对应的配置文件可能是这样的:

server {
    listen 80;
    server_name a.xxx.com;
    index index.shtml index.html index.php;
    root /Users/xxx/WebstormProjects/myprojects/web/;
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
    location ~ \.php$ {
        root /Users/xxx/WebstromProjects/myprojects/server/;
        fastcgi_pass  127.0.0.1:9001;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

而此时,一般会将主目录设置为: /Users/xxx/WebstormProjects/myprojects/web/ 并且在web目录中放置一个index.php作为服务的入口,index.php可以将app的程序目录设置为server。(那么久删除php配置段的root)

方案2

如楼上所说,主目录是服务目录,但我们有规则 ,javascript,css,images,uploads等目录存放在web目录下,于是,设定已这些路径开头的访问将目录指向到 web目录下。

server {
    listen 80;
    server_name a.xxx.com;
    index index.html index.shtml index.php;
    root /Users/xxx/WebstromProjects/myproject/server;
    location / {
       // server
    }
    location ~ /(javascript|css|images) {
        root /Users/xxx/WebstromProjects/myproject/web;
    }
}

提供一些思路,归结其实就一条,先想好,你的访问规则,什么URL是什么,对应配置就好。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文