【问题标题】:Jade/pug setting MIME type of javascript file to text/htmlJade/pug 将 javascript 文件的 MIME 类型设置为 text/html
【发布时间】:2019-12-21 05:22:43
【问题描述】:

嘿,我一直在尝试使用 jam/pug 让我的 node.js 后端在前端呈现我的页面。我需要包含一些 javascript 才能使某些功能正常工作,但我似乎无法正确加载它。我收到此错误:

“来自“http://localhost:3000/public/javascript/newCust.js”的脚本已加载,即使其 MIME 类型(“text/html”)不是有效的 JavaScript MIME 类型。

来源为“http://localhost:3000/public/javascript/newCust.js”的新加载失败。”

我已尝试将内容类型设置为 javascript,并尝试移动目录以帮助解决问题。

script(type='text/javascript' src='public/javascript/newCust.js')

【问题讨论】:

  • 这不是 pug 的问题,它与您的服务器配置有关。
  • 这不是 pug 的问题,它与您的服务器配置有关。

标签: javascript node.js express pug


【解决方案1】:

我看到你把你的静态 javascript 文件放在了正确的地方,即一个名为 public 的文件夹中。 但是,为了提供所有静态文件:html、css 和 javascript 文件,您需要在您的入口点(通常是应用程序)中添加一个内置的中间件函数,即 express.static() .js 或 index.js 文件,像这样:

app.use(express.static('public'));
// you can also use the absolute path, using npm package named path like below :
// app.use(express.static(path.join(__dirname, 'public')));

express.static() 函数会将您的静态 javascript 文件与该公用文件夹结合起来。因此,在你的 pug 文件中,你应该这样写:

script(type='text/javascript' src='./javascript/newCust.js')

不是

script(type='text/javascript' src='./public/javascript/newCust.js') 

您甚至不需要在该脚本标签中添加 MIME 类型,因为默认情况下,脚本标签将具有正确的 MIME 类型:

type='text/javascript'

尝试添加和不添加该 MIME 类型,两者都应该可以工作。

关于使用 express.static() 函数的更多细节,您可以阅读Express built-in middleware function : express.static()

【讨论】:

    猜你喜欢
    • 2012-10-07
    • 2018-06-17
    • 2021-08-27
    • 2013-06-26
    • 2018-12-13
    • 2011-09-22
    • 2014-05-27
    • 2019-08-25
    • 2018-06-14
    相关资源
    最近更新 更多