【问题标题】:Meteor not loading external CSS and JS filesMeteor 不加载外部 CSS 和 JS 文件
【发布时间】:2018-04-27 02:55:02
【问题描述】:

我正在尝试在 Meteor 中加载我的样式表和 js 文件。我有一个 index.html 文件。这就是我一开始在做的事情:

<link href="assets/plugins/boostrapv3/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
<link href="assets/css/animate.min.css" rel="stylesheet" type="text/css"/>
<link href="assets/plugins/jquery-scrollbar/jquery.scrollbar.css" rel="stylesheet" type="text/css"/>

有很多样式表文件和脚本文件。这工作正常,但如果我写了一个类似的网址:'localhost:3000/manage-user/add',一切都停止工作了。我已经阅读了很多答案,他们提到我需要创建一个 lib 文件夹,并且在该文件夹中,我需要创建一个 css 和一个 js 文件夹,但它没有拾取我的文件,尤其是我的“style.css”文件,它覆盖了引导程序和所有样式。

【问题讨论】:

  • 显示您的项目文件夹和文件结构肯定会帮助人们了解您的情况。

标签: javascript css templates meteor meteor-blaze


【解决方案1】:

要将您的 style.css 和/或模板/组件正确添加到您的应用,您必须将它们注册/添加为 body.js 的导入路径。

CSS

  1. 转到你的 body.js。
  2. 添加import '/imports/ui/stylesheets/styles.css'(复制/粘贴此行)

JS - 模板/页面

  1. 转到 layouts 文件夹中的 body.js。
  2. 添加import '/imports/ui/pages/[yourDirName]/[yourFileName].js';(复制/粘贴此行)

奖励内容!

JS - 要导入 html 模板的组件(可选)

  1. 转到您的页面文件夹。
  2. 选择正确的目录。
  3. 选择要导入html模板文件的js文件。
  4. 将组件导入js文件。
  5. 导入'../../components/[yourDirName]/[yourFileName].js;

示例 import '../../components/hello/hello.js';

【讨论】:

    【解决方案2】:

    URL 可以是绝对的也可以是相对的。

    绝对应该从协议值(http://、https://、ftp://等)开始,然后是域名、端口、路径和查询部分。 相对可以从斜杠或任何其他字符开始。

    如果 URL 以斜杠开头,则假定它的值是相对于域的根目录的。

    如果 URL 从任何其他字符开始,则假定它的值是相对于当前 URL(或标签中的值)的。

    Anyway 值localhost:3000/manage-user/add 表示浏览器: “获取当前页面的 URL 并将此值附加到其末尾”。 所以你的文件被尝试从http://localhost:3000/localhost:3000/manage-user/add

    之类的地方获取

    【讨论】:

    • 是的,这正是问题所在。如果我只使用直接网址而不附加任何内容,那么一切正常,但我需要正确的网址。这就是为什么我试图将文件移动到“client/lib/css”和“client/lib/js”文件夹以便它们自动包含在内,但即使这样也没有发生
    【解决方案3】:

    assets 文件夹应该在 /public 文件夹中,然后尝试将 / 添加到 href 值的开头。

    <link href="/assets/plugins/boostrapv3/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/css/animate.min.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/plugins/jquery-scrollbar/jquery.scrollbar.css" rel="stylesheet" type="text/css"/>
    

    【讨论】:

    • 它们已被放置在“公共”文件夹中。此方法工作正常,但我需要一种自动包含它们的方法。每个人都建议如果我将我的 css 文件放在“client/lib/css”文件夹中,meteor 会自动包含它们,但那不会发生
    猜你喜欢
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 2012-07-21
    • 1970-01-01
    相关资源
    最近更新 更多