簡體   English   中英

Django找不到我的非python文件!

[英]Django can't find my non-python files!

在我的一生中,我無法讓Django查找我的JavaScript文件! 我試圖將自定義窗口小部件插入管理頁面,如下所示:

class MarkItUpWidget(forms.Textarea):
class Media:
    js = (
        'js/jquery.js',
        'js/markitup/jquery.markitup.js',
        'js/markitup/sets/markdown/set.js',
        'js/markitup.init.js',
    )
    css = {
        'screen': (
            'js/markitup/skins/simple/style.css',
            'js/markitup/sets/markdown/style.css',
        )
    }

但是,當將此代碼插入我的管理頁面時,所有鏈接都斷開了,我無法訪問任何JavaScript文件。 我的設置文件如下所示: http : //pastebin.com/qFVqUXyG

我做錯什么了嗎? 我是Django的新手。

我猜您正在使用django-admin runserver來測試您的網站。 在這種情況下,請查看“ 如何提供靜態文件 ”(但不要忽略大的免責聲明 )。

准備部署后, 本章將包含所有信息(前提是您采用的是Apache / mod_wsgi的標准路線)

我不知道包含js文件的“ django方式”是什么,但是我只在模板中使用了一個簡單的常規包含,這非常好,因為您可以動態生成這些文件的位置/文件名。哦,如果您正在使用django的測試服務器我不知道如何獲取它,甚至無法識別,但是您所需要的只是在本地計算機上運行apache服務器,然后將文件放在localhost目錄中,然后可以通過localhost包含它們通過在模板中包含它們的完整路徑(即http://localhost/myfiledirectory/myfile.js ),我要做的就是使用Amazon s3托管文件,因為您隨后在其中獲得了它們的url(不是您問的關於此問題,但是如果您沒有本地運行的apache,這是一種托管文件的快速方法)

基本上,我對Django的理解是,它的工作方式與PHP框架不同,例如,因為Django的文件無需位於(或至少不需要)在網絡路徑中(即,它們不需要可以通過主機路徑訪問,但可以在計算機上的任何位置),這有助於提供額外的安全性,等等,但這也意味着,要給文件提供一個URL以下載它們,它們需要位於網絡主機路徑中,其他人可能知道如何使django直接執行此操作,但是如果您只想這樣做,我將它們放在localhost路徑上的快速而骯臟的方法將可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM