Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django无法识别媒体URL路径?_Python_Django_Tinymce - Fatal编程技术网

Python Django无法识别媒体URL路径?

Python Django无法识别媒体URL路径?,python,django,tinymce,Python,Django,Tinymce,因此,我试图在一个简单的视图函数上启动并运行TinyMCE,但是到tiny_mce.js文件的路径被搞乱了。该文件位于/Users/home/Django/tinyMCE/media/js/tiny_mce/tiny_mce.js。我相信/media/js/tiny_mce/tiny_mce.js是正确的,因为开发服务器无法访问Django项目文件夹根目录以上的文件。在呈现的页面中,它在调试器中表示找不到javascript文件。这是因为它试图查看/js/tiny_mce/tiny_mce.js

因此,我试图在一个简单的视图函数上启动并运行TinyMCE,但是到tiny_mce.js文件的路径被搞乱了。该文件位于/Users/home/Django/tinyMCE/media/js/tiny_mce/tiny_mce.js。我相信/media/js/tiny_mce/tiny_mce.js是正确的,因为开发服务器无法访问Django项目文件夹根目录以上的文件。在呈现的页面中,它在调试器中表示找不到javascript文件。这是因为它试图查看/js/tiny_mce/tiny_mce.js,而没有寻址路径名的/media/部分

无论如何,下面是名为“simple.html”的模板中javascript的脚本片段<代码> tinyMCE.init({ 模式:“文本区域”, 主题:“简单” });

这就是我的设置的重要部分

MEDIA_ROOT = os.path.join(_base, 'media')
MEDIA_URL = 'http://127.0.0.1:8000/media/'
ADMIN_MEDIA_PREFIX = '/media/'

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'tinymce',
)

您的设置中是否有媒体上下文处理器

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.media',
)
您还可以尝试将以下内容放入设置中,以查看调试消息是否显示任何内容:

TEMPLATE_DEBUG = True

您可以按照其他人的建议手动将其传递给模板,也可以确保使用的是上下文而不是普通上下文。RequestContext将自动使用某些变量填充上下文,包括媒体URL和其他媒体相关变量

文档中的示例:

def some_view(request):
    # ...
    return render_to_response('my_template.html',
                              my_data_dictionary,
                              context_instance=RequestContext(request))

看起来ars已经回答了您真正的问题……但您将遇到另一个问题:
MEDIA\u URL
必须与
ADMIN\u MEDIA\u PREFIX
不同。如果没有,则将优先使用
ADMIN\u MEDIA\u前缀
。我通常通过将
ADMIN\u MEDIA\u PREFIX
更改为
/ADMIN MEDIA/
来解决此问题。看起来您正在使用调试服务器(您的url是)。您是否在URL.py中安装了静态服务

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes':True}),
)
if settings.DEBUG:
urlpatterns+=模式(“”,
(r“^media/(?P.*)”,“django.views.static.service”,{'document\u root':settings.media\u root,'show\u index':True}),
)

“show_indexes”(显示索引):True选项使浏览媒体成为可能。转到您的媒体根目录,看看有什么东西

非常感谢您的帮助。我能够像以前一样解决它

settings.py-->

MEDIA_ROOT = '/home/patrick/Documents/code/projects/test/media/'
MEDIA_URL = 'http://localhost:8000/media/'
(r'^media/(?P<path>,*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
img src="/media/images/logo.jpg"
url.py-->

MEDIA_ROOT = '/home/patrick/Documents/code/projects/test/media/'
MEDIA_URL = 'http://localhost:8000/media/'
(r'^media/(?P<path>,*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
img src="/media/images/logo.jpg"

再一次,非常感谢,我想知道如何做这一切都快发疯了。这个解决方案在运行Ubuntu10.04的Django版本1.2.5开发服务器上对我有效。

请仔细阅读Django官方文档,你会找到最合适的答案

解决这个问题的最好和最简单的方法如下

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
    # ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
相关的url是:

我也有类似的问题, 我有一个单页的应用程序,显然我犯了一个新手错误,使django错过了我的媒体路径。我有以下几点:

url(r'^', home, name="home"),
与此相反:

url(r'^$', home, name="home"),

丢失的
$
使我的url模式丢失了我的媒体url

我也遇到了同样的问题,这就是我如何做到的

如果在模型类中使用文件字段而不是媒体URL,请使用.URL成员访问文件的URL。 例如:像这样的东西

href = "{{ some_object.file_name.url }}" 

这里file\u name是model类中的FileField。

您是否确保在该模板的上下文中传递
MEDIA\u URL
。但仍然出现“页面丢失”错误。我有一种感觉,当我通过fink为Python2.5安装一些额外的东西时,我可能损坏了Django模块。我将重新安装Django,看看它是否起作用。这解决了路径名的问题。但是,javascript没有正确加载,所以我一定是做错了什么。嗯,我不知道。这不是我的问题,但我会记住,如果我再碰到这样一堵巨大的墙,结果证明你是对的。尽管我的媒体URL是,但基本上还是同一个文件夹。因此,不仅路径名必须不同,而且它所引用的文件夹也必须不同。谢谢你的帮助!我确实打开了调试模式,但没有错误。只是javascript文件没有加载,现在仔细观察,即使修改了路径名,它仍然没有加载。1找不到页面:/media/js/tiny_mce/tiny_mce.js在设置TEMPLATE_DEBUG=True后尝试查看页面上的源代码。。调试消息可能位于引用媒体url的html头/脚本部分。是否有/media的url?此页面可能有帮助:我需要媒体的URL吗?我不能从访问javascript文件的视图函数中访问javascript吗?我应该使用它吗?即使使用静态服务,调试器仍然会说缺少javascript文件。这似乎是最符合逻辑的@你能加载任何静态文件吗?很好的答案!从不知道“显示索引”:True。非常感谢。