gpt4 book ai didi

vue.js - 没有 webpack 的 vue JS 组件导入

转载 作者:行者123 更新时间:2023-12-05 06:11:41 27 4
gpt4 key购买 nike

我正在构建一个 flask 应用程序和 jinja2 模板。所以我计划根据我的要求使用 Vue 功能,而不是计划单页应用程序。

我正在尝试使用 vue-carousel 但无法导入它。

这是我的索引 html 代码。

<!DOCTYPE html>
<html lang="en">

<head>
<!--Import Google Icon Font-->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!--Import materialize.css-->
<link type="text/css" rel="stylesheet"
href="{{ url_for('static', filename='node_modules/materialize-css/dist/css/materialize.min.css')}}"
media="screen,projection" />
<!--Import custom css-->
<link type="text/css" rel="stylesheet"
href="{{ url_for('static', filename='css/landing-page-style.css')}}" />
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>

<body>
<header class="landing-page-header">
<div class="primary-overlay">
<!--Nav Bar-->
<div class="navbar-fixed">
<nav class="transparent">
<div class="container">
<div class="nav-wrapper">
<a href="#home" class="brand-logo">artext</a>
<a href="#" data-activates="mobile-nav" class="button-collapse">
<i class="material-icons">menu</i>
</a>
<ul class="right hide-on-med-and-down">
<li>
<a href="#home" id="login"><i class="small material-icons left">login</i>Login</a>
</li>
<li>
<a href="#home"><i class="medium material-icons left">how_to_reg</i>Register</a>
</li>
<li>
<a href="#home" id="home"><i class="medium material-icons left">home</i>Home</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
<!--Side Nav-->
<ul class="side-nav" id="mobile-nav">
<li>
<a href="#home"><i class="material-icons left">login</i>Login</a>
</li>
<li>
<a href="#home"><i class="material-icons left">how_to_reg</i>Register</a>
</li>
<li>
<a href="#home"><i class="material-icons left">home</i>Home</a>
</li>
</ul>
<div id="app">
<carousel :data="data"></carousel>
</div>
<section class="slider" id="slider">
<ul class="slides transparent">
<li>
<div class="caption center-align">
<h2>Take Your Dream Vacation</h2>
<h5 class="light grey-text text-lighten-3 hide-on-small-only">Lorem ipsum dolor sit amet
consectetur
adipisicing elit. Veniam non illo earum cumque id est!</h5>
<a href="#" class="btn btn-large">Learn More</a>
</div>
</li>
<li>
<div class="caption left-align">
<h2>We Work With All Budgets</h2>
<h5 class="light grey-text text-lighten-3 hide-on-small-only">Lorem ipsum dolor sit amet
consectetur
adipisicing elit. Veniam non illo earum cumque id est!</h5>
<a href="#" class="btn btn-large">Learn More</a>
</div>
</li>
<li>
<div class="caption right-align">
<h2>Group & Individual Getaways</h2>
<h5 class="light grey-text text-lighten-3 hide-on-small-only">Lorem ipsum dolor sit amet
consectetur
adipisicing elit. Veniam non illo earum cumque id est!</h5>
<a href="#" class="btn btn-large">Learn More</a>
</div>
</li>
</ul>
</section>
</div>
</header>
<!--Import jQuery before materialize.js-->
<script type="text/javascript"
src="{{ url_for('static', filename='node_modules/jquery/dist/jquery.min.js')}}"></script>
<!--Import materialize.js-->
<script type="text/javascript"
src="{{ url_for('static', filename='node_modules/materialize-css/dist/js/materialize.min.js')}}"></script>

<!--Import app-custom.js-->
<script type="text/javascript"
src="{{ url_for('static', filename='js/landing-page-js.js')}}"></script>
<!--Import vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="{{ url_for('static', filename='node_modules/vue-carousel/dist/vue-carousel.min.js')}}"></script>
<script type="module">
import Carousel from '/static/node_modules/vue-carousel/src/Carousel.vue';
var app = new Vue({
el: '#app',
delimiters: ['[[', ']]'],
data() {
return {
data: [
'<div class="example-slide">Slide 1</div>',
'<div class="example-slide">Slide 2</div>',
'<div class="example-slide">Slide 3</div>',
],
}
},
})
</script>
</body>

</html>

我正在使用 npm 安装组件。在静态文件夹中,我保留了所有模块。

运行应用程序时出现以下错误。

Loading module from “http://127.0.0.1:6009/static/node_modules/vue-carousel/src/Carousel.vue” was blocked because of a disallowed MIME type (“application/octet-stream”).

任何帮助都适用。

最佳答案

我认为 JavaScript 模块只允许 JavaScript MIME 类型,例如 text/javascript 这就是您的 vue 文件被阻止的原因。请参阅 JavaScript modules 中的注释部分.

您可以尝试加载另一个文件,例如 index.js 或手动设置 Content-Type header 。错误应该消失了,但您可能会遇到另一个错误。

您不能只导入 vue 文件,因为它不是普通的 JavaScript 文件。 vue 文件必须由 Webpack (Vue Loader) 解析,这将生成多个 JavaScript 文件。

因此,如果您不想使用 Webpack,那么您必须使用 dist 目录(在其他包中可能不同)或来自 CDN 的文件(已经解析/构建),例如 unpkg.comjsdelivr .

您可以从他们的 examples 查看如何使用 CDN .请参阅 JSFiddle 中的资源部分。

关于vue.js - 没有 webpack 的 vue JS 组件导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63892177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com