আমার জাঙ্গো অ্যাপ্লিকেশনটিতে কীভাবে আমি ফ্যাভিকন পেতে পারি?


148

আমি কেবল favicon.icoআমার staticfilesডিরেক্টরিতে ড্রপটি নামাতে চাই এবং তারপরে এটি আমার অ্যাপে প্রদর্শিত হোক।

আমি কীভাবে এটি সম্পাদন করতে পারি?

আমি favicon.icoফাইলটি আমার staticfilesডিরেক্টরিতে রেখেছি , তবে এটি প্রদর্শিত হয় না এবং আমি এটি আমার লগে দেখতে পাই:

127.0.0.1 - - [21/Feb/2014 10:10:53] "GET /favicon.ico HTTP/1.1" 404 -

আমি যদি যাই তবে আমি http://localhost:8000/static/favicon.icoফ্যাভিকন দেখতে পাচ্ছি।


5
ত্রুটি GET /favicon.icoনা GET /static/favicon.icoতাকিয়ে http://localhost:8000/static/favicon.icoএর সাথে সম্পর্কিত নয়। দেখে মনে হচ্ছে কিছু ব্রাউজার /favicon.icoএইচটিএমএলকে তুচ্ছ করার জন্য অনুরোধ করেছে ।
কি ফ্রিজ হইয়া গেল

উত্তর:


168

আপনার যদি কোনও বেস বা শিরোনামের টেম্পলেট থাকে যা সর্বত্র অন্তর্ভুক্ত রয়েছে কেন সেখানে ফ্যাভিকনকে বেসিক এইচটিএমএল সহ অন্তর্ভুক্ত করবেন না?

<link rel="shortcut icon" type="image/png" href="{% static 'favicon.ico' %}"/>

একটি ভাল ধারণা মত শোনায়। আপনি কি আমাকে এই লিঙ্কে নির্দেশ করতে পারেন যা এটি কীভাবে করবেন?
jononomo

3
হ্যাঁ। এর মতো কিছু:{{STATIC_URL}}favicon.ico
কার্ত্তিকর

16
এটি কেবল একটি উদাহরণ। আপনার প্রয়োজন মাপসই এটি পরিবর্তন করুন।
hanleyhansen

3
এই উত্তরটি আমার পক্ষে কার্যকর হয়নি তবে অন্যান্য উত্তরগুলি ব্যবহার href="{% static 'favicon.ico' %}করেছে।
বেজেউই

4
MIME টাইপ ( image/png) এবং ফাইল ফর্ম্যাট ( favicon.ico) মেলে না।
এক্স-ইউরি

122

একটি লাইটওয়েট ট্রিক হ'ল আপনার urls.pyফাইলে পুনর্নির্দেশ করা , উদাহরণস্বরূপ এমন একটি ভিউ যুক্ত করুন:

from django.views.generic.base import RedirectView

favicon_view = RedirectView.as_view(url='/static/favicon.ico', permanent=True)

urlpatterns = [
    ...
    re_path(r'^favicon\.ico$', favicon_view),
    ...
]

এটি আপনার হোস্টের কাছে সত্যিকারের অন্যান্য স্থিতিশীল সামগ্রী না থাকলে ফ্যাভিকনগুলি কাজ করার জন্য একটি সহজ কৌশল হিসাবে কাজ করে।


3
টেমপ্লেটে দুটি লাইন যুক্ত করার তুলনায় এটি কীভাবে হালকা ওজনের তা আমি দেখছি না। এবং এটি এমন কৌশল যা আমি প্রযোজনায় ব্যবহার করব না।
এক্স-ইউরি

16
@ এক্স-ইউরি অন্যান্য উত্তর সহজ, যদি আপনি সেই সমস্ত সময়ে কোন বুনিয়াদি টেমপ্লেট আছে । মুল বক্তব্যটি আপনার কোনও টেম্পলেট বা স্থির সামগ্রী নাও থাকতে পারে, সুতরাং STATIC_URL এমনকি কনফিগার করাও যায় না। যেমন এটি একটি জসন এপিআই। তবে এখনও আপনার লগগুলিতে 404 ত্রুটি না দেখে ব্রাউজযোগ্য এপিআই চান (ক্রোম ইত্যাদি স্বয়ংক্রিয়ভাবে ফেভিকন.ইকোকে অনুরোধ করার চেষ্টা করবে)। উত্পাদনে এ জাতীয় পুনর্নির্দেশ ভিউ ব্যবহার করার কোনও ক্ষতি নেই।
wim

56

টেমপ্লেট ফাইলে

{% load static %}

তারপরে <head>ট্যাগের মধ্যে

<link rel="shortcut icon" href="{%  static 'favicon.ico' %}">

এটি ধরে নিয়েছে যে আপনার কাছে স্থিতিশীল ফাইলগুলি সেটিংস.পিতে অ্যাপ্রোটিভলি কনফিগার করেছেন।


দ্রষ্টব্য : জ্যাঙ্গো ব্যবহারের পুরানো সংস্করণগুলি load staticfiles, না load static


31

সর্বজনীন সমাধান

আপনি ফ্যাভিকনটি জ্যাঙ্গোতে একইভাবে দেখাতে পারেন যেভাবে আপনি অন্য কোনও কাঠামোয় করতে পারেন: কেবল খাঁটি এইচটিএমএল ব্যবহার করুন।

আপনার HTML টেমপ্লেটের শিরোনামে নিম্নলিখিত কোডটি যুক্ত করুন।
আরও ভাল, যদি আপনার অ্যাপ্লিকেশন জুড়ে ফেভিকন একই থাকে your

<link rel="shortcut icon" href="{% static 'favicon/favicon.png' %}"/>

পূর্ববর্তী কোড ধরে:

  1. আপনার স্ট্যাটিক ফোল্ডারে আপনার ফ্যাভিকন নামের একটি ফোল্ডার রয়েছে
  2. ফেভিকন ফাইলটির নাম 'ফেভিকন.পিএনজি' রয়েছে
  3. আপনি সঠিকভাবে সেটিংস ভেরিয়েবল STATIC_URL সেট করেছেন

উইকিপিডিয়া https://en.wikedia.org/wiki/Favicon এর এই নিবন্ধে ফাইল ফর্ম্যাট সমর্থন এবং ফ্যাভিকনগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে আপনি দরকারী তথ্য পেতে পারেন । আমি সর্বজনীন ব্রাউজারের সামঞ্জস্যের জন্য ব্যবহারের প্রস্তাব দিতে পারি ।
.png

সম্পাদনা:
একটি মন্তব্যে পোস্ট করা হিসাবে,
" {% load staticfiles %}আপনার টেম্পলেট ফাইলের শীর্ষে যুক্ত করতে ভুলবেন না !"


টিপ্প: ফ্যাভিকন.ইকো আমার পক্ষে তা করেনি, .png এক্সটেনশন দিয়ে কাজ করার পরে এটি কাজ করে!
কেয়া

আপনি ঠিক কায়া বলেছেন .Ico ফর্ম্যাটটি সামঞ্জস্যতা সম্পর্কে সেরা নয়। তবে .png সর্বদা কাজ করে।
ePi272314

15

আপনার settings.pyএকটি রুট স্ট্যাটিক ফাইলস ডিরেক্টরি যুক্ত করুন:

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

সৃষ্টি /static/images/favicon.ico

আপনার টেমপ্লেটে ফ্যাভিকন যুক্ত করুন (বেস html):

{% load static %}
<link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/>

এবং একটি ইউআরএল পুনর্নির্দেশ তৈরি করুন urls.pyকারণ ব্রাউজারগুলি একটি ফ্যাভিকন ভিতরে সন্ধান করে/favicon.ico

from django.contrib.staticfiles.storage import staticfiles_storage
from django.views.generic.base import RedirectView

urlpatterns = [
    ...
    path('favicon.ico', RedirectView.as_view(url=staticfiles_storage.url('images/favicon.ico')))
]

9
<link rel="shortcut icon" href="{% static 'favicon/favicon.ico' %}"/>

প্রথম উত্তর হিসাবে আইওএস এক্সটেনশনের মতো আপনার বেস ফাইলটিতে কেবল এটি যুক্ত করুন এবং এটি স্ট্যাটিক ফোল্ডারে যুক্ত করুন


4

আপনার যদি অনুমতি থাকে তবে

Alias /favicon.ico /var/www/aktel/workspace1/PyBot/PyBot/static/favicon.ico

আপনার ভার্চুয়াল হোস্টে উপন্যাস যুক্ত করুন। (অ্যাপাচি কনফিগারেশন ফাইলে) একইভাবে রোবট.টিএসটিএসটির জন্য

Alias /robots.txt /var/www/---your path ---/PyBot/robots.txt

3

জ্যাঙ্গো বেস html টেম্পলেটটি ওভাররাইড করা সবচেয়ে ভাল সমাধান। অ্যাডমিন ডিরেক্টরিতে অন্য একটি বেস html টেম্পলেট তৈরি করুন। এটির অস্তিত্ব না থাকলে প্রথমে একটি অ্যাডমিন ডিরেক্টরি তৈরি করুন।app/admin/base.html.

যোগ {% block extrahead %}অগ্রাহ্য টেমপ্লেটে।

{% extends 'admin/base.html' %}
{% load staticfiles %}
{% block javascripts %}
    {{ block.super }}
<script type="text/javascript" src="{% static 'app/js/action.js' %}"></script>

{% endblock %}

{% block extrahead %}
    <link rel="shortcut icon" href="{% static 'app/img/favicon.ico'  %}" />
{% endblock %}
{% block stylesheets %}

    {{ block.super }}
{% endblock %}

3
        <link rel="shortcut icon" type="image/png" href="{% static 'favicon/sample.png' %}" />

এটিও চালান: পাইথন ম্যানেজ.পি কালেক্টস্ট্যাটিক


2

আমি জাঙ্গো ২.১.১ এ নিম্নলিখিত সেটিংস চেষ্টা করেছি

base.html

<head>
  {% load static %}
  <link rel="shortcut icon" type="image/png" href="{% static 'images/favicon.ico' %}"/>
</head>

settings.py

 STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 STATIC_URL = '/static/'` <br>`.............

প্রকল্প ডিরেক্টরি কাঠামো

ভাবমূর্তি

এখানে সরাসরি দেখুন


1

আপনার ফেভিকনটিকে কেবল অনুলিপি করুন: / ইউরাপ নাম / মাইনাপ (উদা: কোর) / স্ট্যাটিক / মাইনাপ (প্রাক্তন: কোর) / আইএমজি

তারপরে আপনার মাইনাপ টেম্পলেটটিতে যান (উদা: বেসচটিএমটিএল) এবং this % লোড স্ট্যাটিক% after এর পরে কেবল এটি অনুলিপি করুন কারণ আপনাকে অবশ্যই প্রথমে স্ট্যাটিকগুলি লোড করতে হবে।

<link href="{% static 'core/img/favi_x.png' %}" rel="shortcut icon" type="image/png" />

0

সেরা অনুশীলন :

আপনি যা ভাবেন তার বিপরীতে, ফ্যাভিকন কোনও আকার এবং যেকোন চিত্রের হতে পারে। বিস্তারিত জানার জন্য এই লিঙ্ক অনুসরণ করুন।

আপনার ফেভিকনে কোনও লিঙ্ক না রাখলে পৃষ্ঠা লোডটি কমিয়ে দেওয়া যায়।

একটি জাঙ্গো প্রকল্পে, ধরুন আপনার ফেভিকনের পথটি হ'ল:

myapp/static/icons/favicon.png

আপনার জ্যাঙ্গো টেম্পলেটগুলিতে (মূলত বেস টেম্পলেটে) পৃষ্ঠার শীর্ষে এই লাইনটি যুক্ত করুন:

<link rel="shortcut icon" href="{%  static 'icons/favicon.png' %}">

বিঃদ্রঃ :

আমাদের ধারণা, স্থির সেটিংস সেটিংস.পাই-তে ভালভাবে কনফিগার করা আছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.