当前位置: 首页 > 知识库问答 >
问题:

烧瓶找不到静态文件与webpack[重复]

徐唯
2023-03-14

我目前正在创建一个涉及flask和webpack的项目。目前flask服务器能够找到相关模板,但无法找到相关JavaScript。

我有一个webpack配置用于创建超文本标记语言文件使用webpack html插件这样:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');

module.exports = {
    entry: {app: './src/index.js', print: './src/print.js'},
    output: {filename: '[name].bundle.js', path: path.resolve(__dirname, 'dist')},
    plugins: [new HtmlWebpackPlugin({template:"./src/index.html"}), new CleanWebpackPlugin(['dist'])],
};

在src目录中使用名为index.html的模板,其中包含以下内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hellow World</title>
</head>
<body>
<h1>It Works</h1>
</body>
</html>

webpack应将其与以下javascript index.js捆绑在一起:

import _ from 'lodash';
import printMe from './print.js';

function component() {
    let element = document.createElement('div');
    let btn = document.createElement('button');

    // lodash now imported
    element.innerHTML = _.join(['Hello', 'webpack'], ' ');

    // new button
    btn.innerHTML = 'Click me and check the console!';
    btn.onclick = printMe;

    element.appendChild(btn);

    return element;
}

document.body.appendChild(component());

和print.js:

export default function printMe() {
  console.log('I get called from print.js!');
}

app.py如下:

from flask import Flask, render_template
app = Flask(__name__, template_folder="dist/", static_folder="dist/")


@app.route("/")
def index():
    """
    renders basic index page
    :return: template
    """
    return render_template("index.html")


# app entry point
if __name__ == "__main__":
    app.run(debug=True)

运行构建后,会在dist文件夹中生成一个模板,其内容index.html如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hellow World</title>
</head>
<body>
<h1>It Works</h1>
<script type="text/javascript" src="app.bundle.js"></script><script type="text/javascript" src="print.bundle.js"></script></body>
</html>

我无法解决它如何能够找到模板,但无法找到相关的JavaScript。

共有1个答案

夏弘义
2023-03-14

根据您的配置,app.bundle.js的正确URL是/dist/app.bundle.js

如果要从其他文件夹提供静态文件,则必须将静态url\u路径参数设置为

app = Flask(__name__, template_folder="dist", static_folder="dist", static_url_path="")
 类似资料:
  • 问题内容: 我曾尝试阅读Bottle的文档,但是,我仍然不确定静态文件服务的工作方式。我有一个文件,并且在其中有一个css文件,可以正常工作。但是,我读到的是Bottle不会自动提供css文件,如果页面正确加载,那是不正确的。 但是,在请求页面时遇到了速度问题。是因为我没有使用?如果有人可以弄清它们的工作方式以及在加载页面时如何使用它们,那将是很好的。 服务器代码: 指数: 问题答案: 如文档中所

  • 问题内容: 我混淆了STATIC_ROOT和STATICFILES_DIRS 实际上,我并不是很了解STATIC_ROOT的实用程序。我认为这是我必须放置公用文件的目录。该目录用于生产,这是collectstatic将放置(收集)静态文件的目录。 STATICFILES_DIRS是我需要的。 由于我处于开发环境中,因此对我来说,解决方案是不使用STATIC_ROOT(或指定其他路径)并在STATI

  • 我正在使用flask-RESTful开发API,并且对Flask的jsonify函数有问题。我正在使用flask-marshmlet进行JSON序列化。下面是一个非常简化的代码片段: 在本地,endpoint将返回具有键“data”和“error”的json;但是,当在Linux服务器上运行时,它会返回一个包含列表和在没有“data”和“error”键的情况下返回的结果。 我已经确定这种不一致是由

  • 问题内容: 我正在尝试使用Flask创建一个Web应用程序,该应用程序允许用户上传文件并将其提供给其他用户。现在,我可以将文件正确 地上 传到 upload_folder了 。但是我似乎找不到找到让用户下载回来的方法。 我将文件名的名称存储到数据库中。 我有一个为数据库对象服务的视图。我也可以删除它们。 在我的HTML中,我有: 和下载视图: 但它正在返回: 未找到 在服务器上找不到请求的URL。

  • 这是Thymeleaf引擎的配置文件。我还试图添加资源处理,这是: SpringBoot with Thymeleaf-css not search 包com.ggk.config; 这是我的索引。html添加css文件。