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

如何在Django项目中集成Vue.js?CDN方式报错求助

Django集成Vue CDN的冲突解决方法

问题根源很明确:Django模板引擎和Vue都使用{{ }}作为插值语法,Django会优先解析页面中的{{ message }},把它当成自己的模板变量处理——因为你没在Django的上下文里传message变量,所以渲染后的页面里这段内容会变成空字符串。Vue挂载时找不到有效的模板内容,就会抛出"Component is missing template or render function"的警告,最终页面无内容。

这种用Vue CDN直接集成到Django模板的方式完全可行,解决冲突有两种常用方案:

方案一:修改Vue的插值分隔符

在Vue实例配置里自定义一套和Django不冲突的分隔符,比如[[ ]]:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

    <div id="app">[[ message ]]</div>

    <script>
        const { createApp } = Vue

        createApp({
            data() {
                return {
                    message: 'Hello Vue!'
                }
            },
            delimiters: ['[[', ']]'] // 自定义Vue插值分隔符
        }).mount('#app')
    </script>
</body>
</html>

方案二:用Django的verbatim标签包裹Vue内容

告诉Django不要解析指定区域的模板语法,直接原封不动输出内容给Vue:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

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

    <script>
        const { createApp } = Vue

        createApp({
            data() {
                return {
                    message: 'Hello Vue!'
                }
            }
        }).mount('#app')
    </script>
</body>
</html>

如果整个#app容器里都是Vue的内容,也可以把整个容器包裹在{% verbatim %}和{% endverbatim %}之间,更简洁。

两种方案都能解决语法冲突问题,根据你的习惯选择即可,对于学校项目的快速开发需求来说,这两种方法都足够高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:12:57