SailsJs - 从 Assets 服务 Angular 应用程序

SailsJs - Serving Angular App from Assets

在一个新的 SailsJs 应用程序中,我正在尝试从资产文件夹中提供一个 angular 应用程序。考虑到 assets/admin/index.html 我可以访问 localhost:1337/admin,但是,可以访问其他 js 文件或子目录的 none。我什至检查了 .tmp/public 文件夹,一切都在正确复制,但是当我尝试引用 admin 文件夹中除 index.html 以外的任何文件时,找不到它。

参考 index.html 中的 angular 模块

<!--Sailes IO Library-->
<script src="/js/dependencies/sails.io.js"></script>

<!--Vendor Scripts-->
<script src="/js/angular-animate.js"></script>
<script src="/js/angular-aria.js"></script>
<script src="/js/angular-material.js"></script>
<script src="/js/angular-messages.js"></script>
<script src="/js/angular.js"></script>
<script src="/js/release/angular-ui-router.js"></script>

<!--Admin Application Definition-->
<script src="/admin/app.js"></script>
<script src="/admin/config/router.js"></script>

但是,app.js 没有被服务!

我可以不这样做吗?如何从管理文件夹访问我的 angular 应用程序文件?

要在 sails.js 中加载 angular 应用程序,您需要从 views 文件夹提供 index.html 文件。

所以在你config/routes.js

'/': {
    view: 'homepage'
}

这意味着当您点击应用程序的根目录时,将从视图文件夹中提供 homepage.ejs

将 assest/admin/index.html 文件的内容复制到 homepage.ejs 中,如有必要,检查所有 link 和脚本标签是否具有相对于资产文件夹的文件路径.

主页提供后,您可以使用 angular ui 路由器进行路由

注意--

改变你的 localhost:1337/管理员到

localhost:1337

在更深入地阅读文档后,sails 还将提供在 assets 文件夹中找到的 index.html 文件。所以我创建了一个新文件夹,在该文件夹中我创建了一个新的 index.html 和 app.js 文件,然后解除。然后,我的 index.html 文件位于与我的文件夹名称匹配的 url 中。我的文件夹名为 "admin",因此导航至 localhost:1337/admin 加载了我的 index.html 页面。

至于为其他依赖项提供服务,我使用 grunt-bower 和一个新的 grunt 任务开始为我的 bower_components 提供我的 assets/vendor 文件夹。