为什么自定义 JavaScript 文件放在客户端文件夹中时不在我的 Meteor 模板上呈现

Why doesn't custom javascript files render on my Meteor templates when they're placed in the client folder?

本文关键字:我的 Meteor 文件 JavaScript 自定义 客户端 为什么 文件夹      更新时间:2023-09-26

好的,所以我是流星的新手,我在将我的自定义 JavaScript 文件渲染到页面上时遇到问题。我以为你应该把它们放在客户端文件夹中。但由于某种原因,这是行不通的。我也尝试添加脚本标签来调用 js 文件,但这不起作用。它工作的唯一方法是如果我在页面底部的脚本标签内对我的 javascript 代码进行硬编码。但是,我不能对我拥有的每个 js 文件都这样做,因为它们都有相似的变量,而没有。

这是我为客户和项目其余部分的项目结构。

client
  js
    main.js
    classy.js
    bootstrap.js
  stylesheets
  views
    login
    register
    search
server
  social-config.js
public
lib
  router.js
private

Meteor 会将它找到的所有不在test/private/server/目录中的 Javascript 文件合并到客户端。

定义帮助程序、路由等的 Javascript 文件位于 client 目录中。

但是,如果您想要可以按原样引用的 Javascript 文件,请将其放在 public/ 目录中。然后,您可以使用 <script> 标记引用它们,但只能在 <head> 内引用它们。如果您的文件在 public/some/dir/myfile.js ,您将能够使用路径在 HTML 中引用它/some/dir/myfile.js

我建议不要这样做,并将您的逻辑写入 client/ 目录中的一个.js文件中。

这就是我所做的

client/          <---- helpers + event handlers (your logic)
    lib/         <---- Third-party libraries
public/          <---- Reference as is, in the `<head>` - sent to client as an asset, not for normal use

您是否将应用程序部署到 *.meteor.com ? 如果是这种情况,请从发行版中删除"social-config.js"文件,然后重试。

我最近解决了一个类似于您的问题,我的应用程序在我的服务器中运行良好,但是当部署到 meteor.com 时,我的大多数用户模板都不完整或根本不起作用(特别是用户功能)。

在没有"social-config.js"文件的情况下重新部署应用程序,然后以交互方式配置社交按钮。