2013-08-24 10 views
8

यहाँ robots.txt की सेवा robots.txtDjango कुशलतापूर्वक

url(r'^robots\.txt/$', TemplateView.as_view(template_name='robots.txt', 
              content_type='text/plain')), 

मुझे नहीं लगता कि यह सबसे अच्छा तरीका है है की सेवा करने के अपने मौजूदा विधि है। मुझे लगता है कि यह बेहतर होगा अगर यह केवल शुद्ध स्थिर संसाधन था और स्थिर रूप से कार्य करता था। लेकिन जिस तरह से मेरी Django एप्लिकेशन संरचित है कि स्थिर जड़ और बाद के सभी स्थिर फ़ाइलों में

http://my.domain.com/static/stuff-here 

किसी भी विचार स्थित हैं? मैं Django में शौकिया कर रहा हूँ लेकिन

TemplateView.as_view(template_name='robots.txt', 
            content_type='text/plain') 

एक बहुत अधिक मेरी स्थिर निर्देशिका करने के लिए सिर्फ एक स्थिर कॉल जो nginx पर परोसा जाता है की तुलना में खपत संसाधन लग रहा है।

उत्तर

27

हाँ, फ़ाइल स्थिर होने पर Django द्वारा robots.txt परोसा नहीं जाना चाहिए। अपने Nginx कॉन्फ़िग फ़ाइल का कुछ इस तरह का प्रयास करें:

location /robots.txt { 
    alias /path/to/static/robots.txt; 
} 

अधिक जानकारी के लिए यहाँ देखें: http://wiki.nginx.org/HttpCoreModule#alias

एक ही बात लागू होती है favicon.ico फाइल करने के लिए अगर आपके पास है।

+0

अच्छा समाधान। लेकिन अगर मेरे पास उस फ़ाइल तक पहुंच नहीं है तो क्या होगा? – BlaShadow

+0

@BlaShadow आपके पास कौन सी फाइल तक पहुंच नहीं है? robot.txt? – Rexford

+0

इसे Nginx द्वारा क्यों परोसा जाना चाहिए? – dspacejs

1

मुझे पता है कि यह एक देर का जवाब है, मैं वेब सर्वर कॉन्फ़िगरेशन तक पहुंच नहीं होने पर समान समाधान की तलाश में था। http://www.techstricks.com/adding-robots-txt-to-your-django-project/

जो अपनी परियोजना url.py को यह जोड़ने का सुझाव:

from django.conf.urls import url 
from django.http import HttpResponse 

urlpatterns = [ 
    #.... your project urls 
    url(r'^robots.txt', lambda x: HttpResponse("User-Agent: *\nDisallow:", content_type="text/plain"), name="robots_file"), 
] 

जो मुझे लगता है कि थोड़ा और अधिक कुशल एक टेम्पलेट का उपयोग कर कि होना चाहिए तो किसी और इसी तरह के एक समाधान की तलाश के लिए, मैं इस पृष्ठ पाया फ़ाइल, हालांकि यदि आपके एकाधिक 'अस्वीकार करें:' विकल्पों की आवश्यकता है तो यह आपके यूआरएल नियमों को अस्पष्ट कर सकता है।

संबंधित मुद्दे