Python Django无法识别媒体URL路径?
因此,我试图在一个简单的视图函数上启动并运行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({ 模式:“文本区域”, 主题:“简单” }); 这就是我的设置的重要部分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
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。非常感谢。