Twitter bootstrap 3 在Phoenix框架中集成引导主题

Twitter bootstrap 3 在Phoenix框架中集成引导主题,twitter-bootstrap-3,phoenix-framework,Twitter Bootstrap 3,Phoenix Framework,我一直在构建一个流星应用程序,并决定放弃它,转而支持凤凰。我遇到的问题是试图将预先制作的引导主题与我的应用程序集成。我需要能够控制CSS、Sass和JavaScript的加载顺序。在Meteor中,将加载顺序放在package.json文件中,并为其构建自定义包。此外,您不必在HTML中包含导入语句。因此,我的具体问题如下: 如何控制文件的加载顺序 所有JavaScript、CSS、Sass和图像文件应该放在哪里?(我猜是在静态供应商目录中?) 我确实需要在HTML文件中包含导入语句,对吗 这个

我一直在构建一个流星应用程序,并决定放弃它,转而支持凤凰。我遇到的问题是试图将预先制作的引导主题与我的应用程序集成。我需要能够控制CSS、Sass和JavaScript的加载顺序。在Meteor中,将加载顺序放在package.json文件中,并为其构建自定义包。此外,您不必在HTML中包含导入语句。因此,我的具体问题如下:

如何控制文件的加载顺序

所有JavaScript、CSS、Sass和图像文件应该放在哪里?(我猜是在静态供应商目录中?)

我确实需要在HTML文件中包含导入语句,对吗


这个主题相当大,有一堆JavaScript文件、字体很棒、引导CSS、自定义CSS、Sass、图像和厨房水槽。

在凤凰城,可以这样完成:

您需要在package.json文件中包含sass早午餐包,并运行npm安装,例如

{
  "repository": {
  },
  "dependencies": {
    "brunch": "^1.8.5",
    "babel-brunch": "^5.1.1",
    "clean-css-brunch": ">= 1.0 < 1.8",
    "css-brunch": ">= 1.0 < 1.8",
    "javascript-brunch": ">= 1.0 < 1.8",
    "sass-brunch": "^1.8.10",
    "uglify-js-brunch": ">= 1.0 < 1.8"
  }
}
@import "../vendor/css/bootstrap";
下一部分可能是您难以理解的部分,因为I=o)。对于javascript文件,您需要在brunch config.js文件中使用它们,如下所示:

exports.config = {
  // See http://brunch.io/#documentation for docs.
  files: {
    javascripts: {
      joinTo: "js/app.js",
      order: {
        before: [
          "web/static/vendor/js/jquery.min.js",
          "web/static/vendor/js/bootstrap.min.js",
          "web/static/vendor/js/scripts.js"
        ]
      }
    },
    stylesheets: {
      joinTo: "css/app.css"
    },
    templates: {
      joinTo: "js/app.js"
    }
  },

  conventions: {
    // This option sets where we should place non-css and non-js assets in.
    // By default, we set this to "/web/static/assets". Files in this directory
    // will be copied to `paths.public`, which is "priv/static" by default.
    assets: /^(web\/static\/assets)/
  },

  // Phoenix paths configuration
  paths: {
    // Dependencies and current project directories to watch
    watched: [
      "deps/phoenix/web/static",
      "deps/phoenix_html/web/static",
      "web/static",
      "test/static"
    ],

    // Where to compile files to
    public: "priv/static"
  },

  // Configure your plugins
  plugins: {
    babel: {
      // Do not use ES6 compiler in vendor code
      ignore: [/web\/static\/vendor/]
    }
  },

  modules: {
    autoRequire: {
      "js/app.js": ["web/static/js/app"]
    }
  },

  npm: {
    enabled: true
  }
};

在html.eex文件中包含导入语句和脚本src,对吗?为了确保我有这个权利,我需要将app.css更改为app.scss,在我的早午餐配置中添加scss支持,将我的所有css和scss文件导入app.scss,并将所有css和js文件放入供应商文件夹。听起来对吗?没错,ceero,通过这种方式,您将能够按照主题需要导入文件的顺序导入它们。至于html.eex文件,您不需要单独导入或链接到这些文件,因为phoenix与brunch合作将使用brunch build将所有文件编译并压缩为一个css和一个js文件,当您准备投入生产时,您将希望运行mix phoenix.digest,它将消化您的资产这些文件已经链接到您的主布局文件app.html.eex文件中,该文件位于web/templates/layout.Got it中。这就是我想要的解释。Phoenix是否允许您根据路线使用多个布局?它允许ceero,您可以在这里和这里看到它是如何实现的