Sails js 9.4 - 资产未被复制

Lor*_* V. 4 sails.js

第一个帆没有创建.tmp/public,所以我手动完成.但它也不会将我的资源文件夹中的内容复制到我的公共文件夹中.有人可以解释为什么会这样吗?

#

那时,我得到的答案没有帮助,我现在更新到9.8,我似乎没有任何问题.

#

Maa*_*ter 11

我有同样的问题.运行sails lift时未创建.tmp文件夹.最终对我有用的是在我的sails应用程序的根文件夹中本地安装Grunt.所以只需npm install grunt在你的sails app文件夹中运行.让Grunt在全球范围内安装-g旗帜显然是不够的.本地安装后,您可以sails lift再次运行,并将创建.tmp文件夹.
希望这可以帮助!


Joh*_*alt 5

我在哪里把我的CSS和javascript资产放在帆中?

Sails使用grunt来管理资产.一些"管理"涉及在项目文件夹结构和服务器的公共文件夹之间同步文件,但一如既往,我已经领先于自己.

配置grunt基于在Gruntfile.jssails项目的根目录中找到的文件.这个文件中有很多内容,但是,我将专注于javascript和css资产.

您的项目资产

首次创建项目时,可以选择使用该--linker标志.使用该标志的一个例子是sails new projectName --linker.这是/assets两种情况下文件夹的目录结构:

使用--linker标志

/assets
 /images
 /linker
  /js
  /styles
  /templates
Run Code Online (Sandbox Code Playgroud)

未使用--linker标志

/assets
 /images
 /js
 /styles
Run Code Online (Sandbox Code Playgroud)

请注意,您可以--linker通过手动创建/linker文件夹并将其插入/assets路径来"升级"未使用该标志创建的项目.然后,您可以添加/js,/styles/templates/linker.

服务器的公用文件夹

当开始经由帆服务器sails lift通过下面的文件夹结构中创建/同步时间grunt的内.tmp文件夹中:

.tmp
  /public
Run Code Online (Sandbox Code Playgroud)

如果有任何其他的项目文件夹(例如/images,/js,/styles,/templates)含有它们复制内容/同步时间到.tmp/public文件夹中.的区别在于,如果一个/linker文件夹存在,则/js,/styles和另外的/templates文件夹下创建/linker.

我的layout.ejs档案怎么了?

如果您使用该/linker文件夹,sails将更改您的layout.ejs文件以包含指向您的javascript和css文件的链接.因此,从项目/views文件夹提供的任何页面都可以访问这些文件中包含的javascript和css.

Grunt使用注释标签layout.ejs作为这些链接的placehodler.例如,放置在/style文件夹中的任何内容都将自动链接到layout.ejs这两个标记之间:

<!--STYLES-->    
<!--STYLES END-->
Run Code Online (Sandbox Code Playgroud)

/js文件夹中的任何内容都将链接在这两个标记之间:

<!--SCRIPTS-->
<!--SCRIPTS END-->
Run Code Online (Sandbox Code Playgroud)

中点儿/templates文件夹这两个标记之间的链接:

<!--TEMPLATES-->   
<!--TEMPLATES END-->
Run Code Online (Sandbox Code Playgroud)

访问Sail的资产

以下是在任一情况下访问资产的方式:

使用/linker文件夹

/js - > /linker/js/yourFile.js

/styles - > /linker/styles/yourCSS.css

不使用/linker文件夹

/js - > /js/yourFile.js

/styles - > /styles/yourCSS.css