当前位置: 首页 > 面试题库 >

如何使用Nginx提供Flask静态文件?

姬实
2023-03-14
问题内容

我有一个具有以下结构的Web应用程序:

|
|__ static
   |__style.less
   |__images
|__ myapp.py
|__ wsgi.py

我已经设法使用nginx和wsgi运行Web应用程序,但是问题是没有提供静态文件,我的意思是,当我转到它们的URL时,服务器找不到它们。它给我404。

这是我的nginx配置文件部分:

 server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/public_html;
    index index.php index.html index.htm;

    server_name xxxxxxx.com;

    location / {
        try_files $uri $uri/ =404;
    }

    location /myapp {
        include uwsgi_params;
        uwsgi_pass unix:/var/www/public_html/myapp/myapp.sock;
}

缺少什么吗?


问题答案:

将此添加到你的nginx配置

location ^~ /static/  {
    include  /etc/nginx/mime.types;
    root /project_path/;
}

/project_path/用你应用的绝对路径替换时,你应该注意它不包含静态目录,并且其中的所有内容/project_path/static/都将存储url/static/



 类似资料:
  • 问题内容: 所以这很尴尬。我有一个应用程序,该应用程序已集成在一起,现在它只提供一个静态HTML页面,其中包含指向CSS和JS的链接。而且我找不到文档中描述返回静态文件的位置。是的,我可以使用,但是我知道数据没有模板化。我还以为或者是正确的事情,但我不能让这些工作。同时,我正在打开文件,阅读内容,并装配Response具有适当mimetype的: 有人要为此提供代码示例或网址吗?我知道这将变得简单

  • 问题内容: 我正在尝试提供静态html文件,但返回500错误(.py和模板目录上有editor.html的副本),这是我尝试过的全部操作: 这是响应: 问题答案: 将其简化为最简单的方法: 将静态资产放入子文件夹。 将Flask设置为默认值,也不要设置为默认值。 通过预配置访问静态内容以验证文件是否有效 如果仍然要重用静态文件,请使用,而不要使用斜杠: 这将 直接 在文件夹内查找文件。 假定您将上

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

  • 问题内容: 我有一个应用程序,该应用程序已集成在一起,现在它只提供一个静态页面,其中包含指向CSS和JS的链接。而且我找不到文档中描述返回静态文件的位置。是的,我可以使用,但是我知道数据没有模板化。我还以为或者是正确的事情,但我不能让这些工作。同时,我正在打开文件,阅读内容,并装配具有适当的: 有人要为此提供代码示例或网址吗?我知道这将变得简单。 问题答案: 首选方法是使用nginx或其他Web服

  • 问题内容: 我使用的是OpenShift PaaS,无法弄清楚如何在那里修改.htaccess文件。 我碰到了这段代码,它通过模板为站点地图提供服务。我在应用程序中同时针对站点地图和robots.txt做到了这一点- 这有什么危害吗,或者我的方法还可以吗? 问题答案: 把和到你的应用程序的目录,并定义了这样的观点:

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