You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django项目中CDN引入Vue脚本未生效问题求助

Django模板与Vue 3双大括号语法冲突的解决方法

核心问题不是CDN引入Vue的方式不被Django支持,而是Django模板引擎和Vue的模板语法冲突,同时你的CDN引入代码还有个小格式错误:

问题1:语法冲突

Django和Vue默认都用{{ }}作为变量插值符号。当Django渲染模板时,会先解析{{notice}},但你的Django上下文里并没有notice这个变量,所以它会把这个占位符替换成空字符串,导致Vue拿到的DOM里已经没有{{notice}}了,自然无法渲染出内容。

问题2:CDN脚本加载格式错误

你写的CDN引入代码里,<scriptsrc=缺少了空格,应该是<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>,空格缺失可能导致浏览器无法正确识别脚本标签,进而加载失败。

解决方法

方法1:修改Vue的插值分隔符

在Vue实例里配置自定义分隔符,避开Django的{{ }}:

const { createApp, ref } = Vue

createApp({
  delimiters: ['[[', ']]'], // 改成双中括号作为Vue的插值符号
  setup() {
    const notice = ref('Hello vue!')
    return {
      notice
    }
  }
}).mount('#app')

对应的模板部分改成:

<div id="app">[[notice]] something</div>

方法2:用Django的verbatim标签跳过解析

如果你不想改Vue的语法,可以用Django的{% verbatim %}标签包裹Vue的变量,让Django不解析这段内容:

<div id="app">
  {% verbatim %}{{notice}}{% endverbatim %} something
</div>

方法3:确保脚本加载顺序正确

把Vue的CDN脚本放在你的自定义Vue代码之前,确保Vue全局对象已经加载完成再执行你的代码,比如:

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const { createApp, ref } = Vue
  // ... 你的Vue代码
</script>

内容的提问来源于stack exchange,提问作者oliver li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:02:08