当前位置: 首页 > 知识库问答 >
问题:

如何使用nginx在特定位置路径提供静态文件目录?

龚盛
2023-03-14

我有文件在/用户/我/我的项目和我想服务他们在http://stuff.dev/something使用一个简单的nginx配置。在/User/me/myproject文件夹中是这样的:

index.html
scripts/
    app.js
styles/
    style.css

所以我真的希望能够访问http://stuff.dev/somethinghttp://stuff.dev/something/scripts/app.js等。

在我的nginx配置中,我有:

server {
  listen      80;
  server_name stuff.dev;

  location /something {
    index  index.html;
    root /Users/me/myproject;
  }
}

这不起作用(如果我尝试转到上面的URL,我会得到404),但是如果我尝试完全相同的设置,但是使用location/{而不是location/什么的话{,它可以正常工作。我如何静态地为这个文件目录提供服务,但不是在根位置,而是在一个路径上?我是否必须将文件放在一个名为“某物”的文件夹中,如/Users/me/myproject/something,这样才能工作?如果是这样,有办法解决吗?

共有2个答案

慎弘化
2023-03-14

我相信你可以完成这与try_files指令,这样的东西应该工作:

server {
  listen      80;
  server_name stuff.dev;

  location /something {
    root /Users/me/myproject;
    index  index.html;

    try_files /Users/me/myproject/$uri /Users/me/myproject/$uri/ =404
  }
}

这可能需要你把文件塞到 /Users/me/myproject/something,如果你不能逃脱惩罚,你需要尝试像下面这样的位置:

  location ~ /something(.*) {
    root /Users/me/myproject;
    index  index.html;

    try_files /Users/me/myproject$1 /Users/me/myproject$1/ =404
  }
施超
2023-03-14

我在我的VPS上尝试了这一点,并且使用alias命令对我有效:

server {
  listen 80;
  server_name   something.nateeagle.com;

  location /something {
    alias /home/neagle/something;
    index index.html index.htm;
  }
}
 类似资料:
  • 问题内容: 我有一个具有以下结构的Web应用程序: 我已经设法使用nginx和wsgi运行Web应用程序,但是问题是没有提供静态文件,我的意思是,当我转到它们的URL时,服务器找不到它们。它给我404。 这是我的nginx配置文件部分: 缺少什么吗? 问题答案: 将此添加到你的nginx配置 用你应用的绝对路径替换时,你应该注意它不包含静态目录,并且其中的所有内容都将存储在中。

  • 问题内容: 我正在尝试: 但是它继续提供我static_path中拥有的服务(如上所述,我在两个单独的路径中有两个不同的,但是我希望能够覆盖)。 问题答案: 从应用程序设置中删除。 然后将您的处理程序设置为:

  • 我一直在处理将一个站点从Apache迁移到Nginx的过程,我快要失去理智了。虚拟主机不想提供静态资源(css、js等),我似乎不知道为什么。服务器块看起来像这样: 我错过了什么?我知道这是因为我对Nginx缺乏经验,但任何建议都将不胜感激。 谢谢 更新 这似乎与我以前遇到麻烦的化名有关。如果我将我的文档根指向别名位置(),并尝试呈现没有别名的静态内容,它会呈现良好的效果。一旦我在网址中输入别名.

  • 问题内容: 我在具有基本HTTP服务器(没有Express或Connect或类似的东西)的Node服务器上使用Socket.IO。默认情况下,Socket.IO将客户端文件提供给 /socket.io/socket.io.js 我希望能够将该基本路径更改为其他内容,例如 /foo/bar/socket.io/socket.io.js 是否有任何内置方法来执行此操作,或者是否有任何不更改Socket

  • 问题内容: 这是我的项目文件夹 这是我index.js中的静态文件配置 这是我的index.html 这是我的nginx配置 但是我在所有脚本上都得到404。另一个奇怪的是,这些文件上的mime-type设置为 我在这里做错了什么? 我有一个项目,该项目具有相同的项目结构,并且具有相同的配置,但它适用于此项目,在这种情况下不起作用。 问题答案: 您无需配置Nginx 和 Express即可提供静态

  • 问题内容: 我正在为Django使用apache + mod_wsgi。 并且所有css / js / images都通过提供。 出于某种奇怪的原因,当其他人/朋友/同事尝试访问该网站时,jquery / css不会为他们加载,因此页面看上去很混乱。 我的html文件使用这样的代码- 我的nginx配置是这样的 有一个目录,其中有相应的&目录。 奇怪的是,当我访问它们时页面显示正常。 我已经清除了