【问题标题】:chessboard.js board image is not showing up in browserchessboard.js 棋盘图像未显示在浏览器中
【发布时间】:2020-04-12 17:15:51
【问题描述】:

我正在尝试使用 Flask 构建一个非常简单的 web 应用程序来与我的 python 国际象棋引擎下棋。但是,我是 javascript、html 和 css 的新手,我无法让 chessboard.js 棋盘图像显示在我的浏览器中。 这是我的 html 正文代码 sn-p (脚本链接行实际上位于 head 部分)。非常简单,没有输入或任何东西。我只是想让图像显示出来! '''

  <link rel="stylesheet" href="css/chessboard-0.3.0.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="js/chessboard-0.3.0.min.js"></script>
  <div id="board"></div>
  <button id="startBtn">Start Position</button>
  <script>
      var board = Chessboard('board', 'start')
      $('#startBtn').on('click', board.start)          
  </script>

我已经包含了所有必需的脚本链接(或者我相信在阅读了无数教程和文档之后),并且我还拥有来自最新 chessboard.js 下载的所有 css/、js/ 和 img/ 文件夹,与这个 html 文件(就像我在教程中读到的一样)。

当您使用 Flask 打开浏览器时,所有显示在我的浏览器中的是文本和“开始位置”按钮(单击它时无效)。

为什么棋盘图像没有显示在我的浏览器 (Firefox) 中?

我是否需要以任何方式修改 img 文件夹或 .js 文件? 我的 HTML 有什么问题,还是我需要用 JS 做一些额外的事情?

编辑: 我刚刚意识到我现在从 Flask 启动时遇到了这些错误:

“GET /css/chessboard-0.3.0.min.css HTTP/1.1”404 -

“GET /js/chessboard-0.3.0.min.js HTTP/1.1”404 -

但是,当我在浏览器中打开 HTML 文件时,它工作得很好(在我修复了一些权限问题之后)并且显示了板图像。这似乎是 Flask 实现的问题,所以这是我的代码

app = Flask(__name__)

@app.route("/")
def index():
    return render_template('home.html')

@app.route("/chessgame")
def chessgame():
    return render_template('chessgame.html')


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

总而言之,我已经尝试了所有我能想到的方法,并为此花费了很多时间,因此非常感谢任何帮助!

最好的问候,

提姆

【问题讨论】:

  • 如何进入这个页面?您是直接从本地计算机打开吗?您使用的是哪个 HTTP 服务器?
  • 感谢您的评论!到目前为止,我已经尝试直接在我的机器上打开它(只需双击文件)或在我的网站的 Flask 应用程序中,也在我的机器上。在这两种情况下,图像都不会出现。 “哪个 HTTP 服务器”到底是什么意思?

标签: javascript html http flask chessboard.js


【解决方案1】:

所以我终于解决了!

原来是三个问题的结合:

  • 权限问题 - 确保使用 chmod 755 将所有 js 和 css 文件的权限设置为可执行
  • html 和烧瓶集成问题:烧瓶不像我那样加载脚本,显然希望 /static 目录中的所有 css 和 js 文件并像这样导入: &lt;script src="{{ url_for('static', filename='js/chessboard-1.0.0.js') }}"&gt;&lt;/script&gt;
  • 在我修复所有这些后,棋盘内的小棋子图像没有显示出来。 Yu 必须导航到 chessboard-1.0.0.js 文件并将第 579 行从 config.pieceTheme = 'img/chesspieces/wikipedia/{piece}.png' 更改为 config.pieceTheme = 'static/img/chesspieces/wikipedia/{piece}.png'

这解决了我遇到的所有问题。 chessboard.js 现在可以很好地与烧瓶配合使用,看起来超级酷!

最好的问候,蒂姆

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-12
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 2022-07-13
    • 2021-06-13
    • 2017-08-11
    • 1970-01-01
    相关资源
    最近更新 更多