javascript - 如何在 SailsJS 中有选择地包含 javascript Assets ?

标签 javascript node.js express sails.js

在 Sails.js 应用程序中,如何有选择地包含 javascript Assets ?

例如,如果我有一个管理页面并且 admin.js 位于 assets/js 目录中。如何防止 admin.js 在公共(public)索引页面上加载?

我知道我可以将 js 移到公共(public)目录,并将脚本包含在我的管理 View 的模板中。但是在 assets.js() 调用插入它是 javascript 之后,我仍然无法包含它。我需要在加载 sails.io.js 脚本后插入它。

有没有什么方法可以选择性地加载脚本并仍然可以访问 sails.io.js,它自动包含在 assets.js() 函数调用中?对于这种情况有更好的范例吗?

编辑:

自从SailsJS 0.9 发布和 Assets 管理系统重构后,这个问题就不再适用了。

最佳答案

Sailsjs 使用 asset-rack 来提供/assets。使用默认布局页面,sailsjs 提供如下页面(dummy2.js 包含在显式 < script > 中):

<html>
  <head>
    ...
    <script type="text/javascript" src="/assets/mixins/sails.io-d338eee765373b5d77fdd78f29d47900.js"></script>
    <script type="text/javascript" src="/assets/js/dummy0-1cdb8d87a92a2d5a02b910c6227b3ca4.js"></script>
    <script type="text/javascript" src="/assets/js/dummy1-8c1b254452f6908d682b9b149eb55d7e.js"></script>
  </head>
  <body>
    ...
    <script src="/public/dummy2.js"></script>
    ...
  </body>
</html>

因此 sailsjs 不会连接文件(至少在开发模式下不会)。 sails.io (socket-io) 总是包含在布局中的/assets/js 之前,以及页面上的 < script > 之前。

看起来您的 admin.js 正在等待 sails.io 尚未设置的条件,也许它正在与服务器协商传输?尝试等待设置条件。

关于javascript - 如何在 SailsJS 中有选择地包含 javascript Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17557567/

相关文章:

node.js - 如何获取 Firebase 中另一个集合的文档中的集合

javascript - 如何使用 Express 和 Node.js 从表单发送参数

javascript - Discord.JS 在消息中获取第一个附件

javascript - Node.js API函数是否在单独的线程中执行

javascript - node.js 如何从客户端终止函数执行

node.js - "ng2-CKEditor" Node 模块不适用于 typescript [Angular2]

javascript - 使用 Google 脚本在 Google Sheet GUI 中使用 <href> 标记

javascript - IndexedDB - ObjectStores vs 多个数据库 vs 索引?

javascript - HTTP post 函数之后的重定向/样式设置

node.js - Mongoose.js 仅在定义/更改时更新单个属性