如何使用 React 前端将 favicon 添加到 django 应用程序

2024-01-09

我正在构建一个带有 React 前端的 Django 应用程序,使用 React-create-app 构建。我无法让图标出现在生产中。

我正在使用 Django 2.10.0。

当我构建 React 应用程序时,构建输出文件将放在 asset/static/ 文件夹中。这包括通过 css 用作背景的图像文件,并且一切正常。这些包含在构建中,因为它们在样式表中被引用。该图标是从 index.html 引用的,因此构建过程不会获取该图标。

但是我不知道如何让服务器提供网站图标。如果我将它们放在 frontend/public 文件夹中,Django 服务器找不到它们。

如果我手动将它们复制到 static/ 文件夹中,它们会显示,但该文件夹由 Webpack 管理,并且在构建应用程序时内容会被删除。

将网站图标复制到项目根目录中不起作用。它们与提供服务的 index.html 位于同一文件夹中,但 Django 服务器不会提供这些位于同一位置的图像文件。

我能找到的唯一文档涉及 Django 或 create-react-app;我找不到任何解释如何将它们绑定在一起作为网站图标的内容。

在设置.py中:

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'assets/static'),
    os.path.join(BASE_DIR, 'assets'),
]

在index.html中:

<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />

在浏览器中,这会转换为:

<link rel="shortcut icon" href="/favicon.ico">

这不起作用 - 该文件未提供。我不确定为什么这不起作用,因为我已将“资产”添加到 settings.py 中的 STATICFILES_DIRS 并将图标复制到“资产”的根目录中。

所有工作的 css 和图像链接都包含静态文件夹,例如:

http://localhost:8000/static/media/private.d7365d01.svg

看起来有两个问题:

  1. 如何让构建过程将网站图标和相关文件复制到资产文件夹中,以便可以提供它们

  2. 如何让index.html在正确的位置查找网站图标

如果我可以自定义 PUBLIC_URL 来指向 static/ ,这可能会做到这一点,但这可能会破坏引用它的其他代码位?

我确信我错过了一些简单的事情。我将不胜感激任何帮助!

编辑:我现在已经让图标显示在本地计算机上运行的构建版本中,但生产服务器不提供服务。

Base.py

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'assets/static'),
    os.path.join(BASE_DIR, 'assets'),
]

索引.html

<link rel="shortcut icon" href="%PUBLIC_URL%/static/favicon.ico" />

favicon.ico 位于“assets”文件夹中。构建我的 React 应用程序并在本地运行开发服务器后,URL http://localhost:8000/static/favicon.ico 显示我的 favicon。但是将其部署到服务器后,网址https://example.com/static/favicon.ico https://example.com/static/favicon.ico什么也没找到。我已经检查过,favicon.ico 文件存在于服务器上的资产文件夹中。 Settings.py 是一样的。我不明白为什么生产服务器不提供网站图标?

编辑:我尝试将其添加到我的settings.py中,但它仍然不起作用:

STATIC_ROOT = os.path.join(BASE_DIR, 'assets')

“assets”是服务器上包含我的构建文件的文件夹的名称。图标位于 asset 中,index.html 也是如此,React 文件位于 asset/static 中。

编辑:这是我的 Nginx Passenger 配置文件:

server {
    listen 80;
    server_name 178.62.85.245;

    passenger_python /var/www/myappname/venv36/bin/python3.6;

    # Tell Nginx where your app's 'public' directory is
    root /var/www/myappname/myappname/myappname;

    # Turn on Passenger
    passenger_enabled on;


   # Tell Nginx the location of the build output files
    location /static/ {
       autoindex on;
       alias /var/www/myappname/myappname/assets/;
    }
}

Nginx 找到文件index.html 和React 构建的所有文件。我不知道为什么在同一文件夹中找不到图标!


在生产中,您通常使用 nginx 或 wsgi 服务器前面的任何服务器来提供静态文件。

特别是对于 favicon,您可以在 nginx 中为此设置一个位置:

location = /favicon.ico {
    alias /var/www/mysite/img/favicon.ico;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 React 前端将 favicon 添加到 django 应用程序 的相关文章

  • “unicode”对象没有属性“_meta”

    我正在尝试创建一个视图 用户在其中从下拉菜单中选择一个选项 提交它 然后返回一些数据 具体来说 他们将从数据库中的模型中进行选择 并返回该类的所有实例 我使用 django tables2 输出数据 以便可以排序 但这是我的症结所在 Vie
  • Django:在管理界面中显示多对多项目的列表

    这可能是一个简单的问题 但我似乎无法理解 我在 models py 中有两个简单的模型 Service 和 Host Host services 与 Service 具有 m2m 关系 换句话说 一台主机有多个服务 一个服务可以驻留在多个主
  • 无法在 AWS Elastic Beanstalk 上创建新的 RDS 数据库

    使用后eb create要创建新环境 我无法使用 AWS 控制台在我的环境中创建新的 RDS 数据库 它要求我从四个可用区列表中至少选择两个可用区 无论我选择哪个 我都会收到错误 DBSubnets 无效选项值 subnet 3dbb956
  • 在 Django 1.7 中使用 html 发送电子邮件

    In 发送邮件 我们有一个新参数 html message Docs https docs djangoproject com en dev topics email send mail I have 电子邮件 html文件 我想发送我的消
  • Django / PIL - 上传图像时保存缩略图版本

    这是我的 forms py class UploadImageForm forms ModelForm class Meta model UserImages fields photo 这是我的 models py class UserIm
  • Django 尝试使用错误的数据库用户

    已解决 我使用的是 USERNAME 而不是之前尝试使用 Postgres 驱动程序时使用的 USER 我正在尝试将我的 django 项目连接到 RDS MySQL 数据库 我可以在 MySQL Workbench 和 mysql 命令行
  • django.db.utils.IntegrityError:NOT NULL 约束失败:app.area_id

    当我跑步时 manage py migrate 发生错误django db utils IntegrityError NOT NULL constraint failed app area id models py is class Are
  • DJANGO:如何列出_显示反向外键属性?

    我正在构建一个网络应用程序来跟踪一个人借阅的图书馆书籍 我有以下型号 class Person models Model name models CharField max length 100 def unicode self retur
  • Django 星级评定系统和 AJAX

    我正在尝试在 Django 网站上实现星级评级系统 在我的模型中存储评级是排序的 就像在页面上显示分数一样 但我希望用户能够对页面进行评分 基本上从 1 到 5 而无需刷新或更改页面 我发现了以下内容 并且喜欢这里明星的风格 http jv
  • 使用 Google App Engine 和 Django 将第三方库 (twilio) 添加到项目中

    每个人 我是这个领域的新手 我使用 django 框架使用 google 应用引擎开发 Web 应用程序 我有一个关于 python lib dir 问题的故障排除 导入错误 没有名为 的模块 我的 appengine config py
  • Django 中的行级权限

    有没有办法在 django 中进行行级权限 我以为没有 但只是在文档中注意到了这一点 权限不仅可以按对象类型设置 还可以按对象设置 具体的对象实例 通过使用 has add permission 提供了 has change permiss
  • Django 迁移 RunPython 无法调用模型方法

    我正在使用以下命令创建数据迁移RunPython方法 但是 当我尝试在对象上运行方法时 没有定义任何方法 是否可以使用调用模型上定义的方法RunPython 模型方法在迁移中不可用 包括数据迁移 然而 有一个解决方法 它应该与调用模型方法非
  • Django 休息注册

    我正在使用 Django rest auth https github com Tivix django rest auth https github com Tivix django rest auth 在我的 django 项目中用于登
  • Django GraphQL JWT:tokenAuth 突变返回“str 对象没有属性解码”

    目前 我正在文档页面中运行 django graphqljwt 的基本示例 https django graphql jwt domake io en latest quickstart html https django graphql
  • 如何在 django 模板中将名称反转为绝对 url?

    url url name 给出一个相对名称 我怎样才能做类似的事情 absolute url url name 这样它就会返回带基数的 url 包括端口 如果存在 有不同的解决方案 编写您自己的模板标签并使用 HttpRequest bui
  • 在 Django 中翻译文件时的 Git 命令

    我在 Django 中有一个现有的应用程序 我想在页面上添加翻译 在页面上我有 trans Projects 在 po 文件中我添加了 templates staff site html 200 msgid Projects msgid P
  • 在 django admin 中自定义选择

    我有一个模型 其中一个字段是外键 所以我在 django admin 中看到选择 是否可以自定义此选择的标签 class Model models Model name models CharField def unicode self r
  • Django 多个具有相同名称的输入字段值

    我需要一些帮助 如何处理具有多个输入字段值且名称相同的表单 而且只有一次查看 这实际上是针对基本问题的形式 我发现这个方法的另一个想法https stackoverflow com a 478406 6396981 https stacko
  • 如何在 success_url 中传递上下文数据?

    我制作了一个表单 我希望再次返回相同的表单 这次使用可在我的模板中使用的上下文数据来显示表单已成功发送 我怎样才能做到这一点 class ContactUsView FormView form class ContactUsForm tem
  • 为什么当我运行“python manage.pysyncdb --all”时会出现此错误?

    我正在尝试应用教程http docs django cms org en 2 1 3 getting started tutorial html http docs django cms org en 2 1 3 getting start

随机推荐

  • 如何在 R 中获取当前种子

    我正在 R 中运行一个带有随机因子的函数 我意识到我忘记运行set seed 在运行这个函数之前 有什么方法可以找回seedR 正在使用的值 我想它将是任意数字 但并不重要 以便我可以重现执行 您可以使用以下命令获取当前的随机状态 Rand
  • 如何将地址转换为纬度/经度?

    我如何将地址或城市转换为纬度 经度 我可以从哪些商业机构 租用 这项服务 这将用于具有全时互联网访问的 Windows PC 上的商业桌面应用程序 谷歌有一个地理编码 API 似乎对于他们拥有谷歌地图数据的大多数位置都运行良好 http g
  • 为什么内部 TABLE 部分必须经过 THEAD TFOOT TBODY 才能验证?

    我经常使用 THEAD TBODY 和 TFOOT 元素将数据表划分为可以使用 CSS 单独寻址的部分 我也明白总是有一个隐式的 TBODY 标签 让我困惑的是这些必须进入验证的顺序 该表将验证
  • Hadoop 映射器从 2 个不同的源输入文件读取

    我有一个链接很多映射器和缩减器的工具 在某些时候我需要合并之前映射缩减步骤的结果 例如作为输入 我有两个包含数据的文件 input a txt apple 10 orange 20 input b txt apple 5 orange 40
  • 如何使用javas Process.waitFor()?

    我正在尝试从 Java 运行命令行命令 快速的健全性检查让我意识到我遇到麻烦的原因是我无法获取pr waitFor 请拨打以下电话进行工作 该程序在不到 30 秒内结束 并且在 foo 之后不打印任何内容 我预计它会花费 30 多秒并在 f
  • 如何从模块导入类而不导入整个模块

    我有一个非常大的 python 模块 超过 1 GB 我使用以下命令在另一个 python 脚本中从该模块导入一个类from module import class 问题是 当我第一次启动 python 脚本时 内存消耗非常高 并且脚本执行
  • 具有多个手柄的 JQuery UI 滑块:如何阻止手柄交叉?

    我正在开发一个快速解决方案 它使用具有多个手柄的滑块来定义动态布局的宽度 我尝试使用 ExtJS3 和最新的 JQuery UI 在 ExtJS 中 您可以限制句柄 这样它们就不会相互交叉 这是一种实现我需要的 UI 的非常直观的方法 但是
  • 初始化集合时,哈希集对内存有何作用?

    我偶然发现了以下问题 我想要一个包含从 1 到 100 000 000 的所有数字的哈希集 我尝试了以下代码 var mySet new HashSet
  • ServiceStack OrmLite 命令超时

    使用 IDbConnection ExecuteSql 时如何设置命令超时 IDbConnection db ConnectionFactory OpenDbConnection db ExecuteSql 如果我使用 IDbCommand
  • 在撰写中禁用横向模式

    如何禁用可组合函数的横向模式 我想始终以纵向模式显示可组合项 PS 无法在活动的清单文件中设置它 因为我只希望此行为适用于一个可组合项 而不适用于活动中的其他可组合项 你可以这样做DisposableEffect 活动requestedOr
  • 线程:PyQt 因“出队时队列中存在未知请求”而崩溃

    我正在开发的应用程序的一部分需要向一小群人发送一些电子邮件 由于连接到 SMTP 服务器并发送电子邮件可能需要一些时间 因此我想在此操作期间使用后台线程来提供一个进度条来完成这项工作 现在发生的情况是 我可以实现一个工作得很好的测试结构 但
  • PHP 中如何判断 value 是否为日期

    我正在使用 PHP 中的值数组 其中一些值可能包括各种字符串格式的日期 我需要将多种格式的日期转换为它们的等效数字 Unix 时间戳 问题是能够确定字符串是否是日期 Using if timestamp strtotime str fals
  • Android:加密密码[重复]

    这个问题在这里已经有答案了 可能的重复 存储密码 https stackoverflow com questions 5359399 storing a password 我正在使用共享首选项来存储密码 按原样保存密码数据是否安全 或者我必
  • Three.js 中的渐进式加载/LOD/流网格

    我正在使用 STL 加载器将 stl 文件加载到 Three js 场景中 这些 stl 文件的大小从 5mb 到 50mb 不等 有没有一种方法可以用来在模型加载时逐步加载 流式传输 提高细节级别 不确定术语是否正确 以便我的用户在出现任
  • R 按组总和总结给出 NA

    我有一个像这样的数据框 Observations 2 190 835 Variables 13 patientid
  • Angular 2 自定义复合控件

    我正在尝试为 Angular 2 创建一个自定义复合控件 我的要求是我需要创建一个允许用户选择文件的通用文件选择器控件either使用 html5 输入 类型 文件 or通过输入文件的 url 我决定创建通用表单控件 为两个子控件实现 Co
  • 何时对卷积层使用什么类型的填充?

    我知道当我们在神经网络中使用卷积层时 我们通常使用填充并且主要使用恒定填充 例如零填充 并且有不同类型的填充 例如对称 反射 恒定 但我不确定使用不同填充方法的优点和缺点以及何时使用哪一种 这实际上取决于神经网络的用途的情况 我不会告诉它的
  • Bootstrap 表 - 无法在 tr 上添加点击事件

    我正在使用 Bootstrap 表 http wenzhixin net cn p bootstrap table docs index html http wenzhixin net cn p bootstrap table docs i
  • AOP 围绕外部库的重写方法?

    我正在寻找以下问题的实用解决方案 外部库提供组件作为基类 自定义组件是通过扩展这些基类来创建的 当实现抛出未处理的异常时 基类就会中断 基类源代码不可用 只有一个二进制罐子 我正在寻找的是一个通用的 AOP 错误处理建议 它将包装每个方法的
  • 如何使用 React 前端将 favicon 添加到 django 应用程序

    我正在构建一个带有 React 前端的 Django 应用程序 使用 React create app 构建 我无法让图标出现在生产中 我正在使用 Django 2 10 0 当我构建 React 应用程序时 构建输出文件将放在 asset