sail js访问本地文件的方法
How to access local files in sail js
首先,感谢您解开我的疑惑。
我想在 layout.ejs 文件中使用我的 .css 和 .js 文件,我可以通过 http://localhost:1337/js/sample.js 完成,但很难在在线服务器中加载此类文件,因为端口号和域名更改。如何在不通过 URL 方法的情况下在布局文件中使用这些文件。
我试过 /js/sample.js 和 /**/js/sample.js 没有任何效果,我很沮丧。
我什至也试过管道方法
var jsFilesToInject = [
'js/dependencies/sails.io.js',
'js/dependencies/**/*.js',
'js/**/*.js',
'js/**/**/*.js'
];
JQuery方法也
<script>
$(document).ready(function() {
$('head').append('<link rel="stylesheet" href='+document.location.origin + '"/styles/sb-admin.css" type="text/css" />' +
'<link rel="stylesheet" href='+ document.location.origin + '"/styles/plugins/morris.css" type="text/css" />' +
'<link rel="stylesheet" href='+document.location.origin + '"/styles/plugins/morris.css" type="text/css" />');
$.when(
$.getScript(document.location.origin + "/js/plugins/morris/raphael.min.js"),
$.getScript(document.location.origin + "/js/plugins/morris/morris.min.js"),
$.getScript(document.location.origin + "/js/plugins/morris/morris-data.js"),
$.Deferred(function (deferred) {
$(deferred.resolve);
})
);
});
</script>
没有任何效果..!!
如果您的项目有文件:
assets/js/myscript.js
assets/styles/mystyle.css
那么以下内容应该在任何服务页面(直接 html 资源,或从模板或视图返回的任何内容)中工作:
<script type="text/javascript" src="/js/myscript.js"></script>
<link rel="stylesheet" href="/styles/mystyle.css" />
如果这不起作用,则可能是其他进程导致了问题。我的猜测是,当您在本地主机上开发时,您在做 sails lift
,但在在线服务器上做 sails lift --prod
。
是吗?如果是这样,Grunt(默认情况下带有 sails)可能会在开发和产品提升之间以不同的方式处理一些事情。可能是您正在寻找的文件正在被串联 and/or 缩小到某个 production.js
文件中,并且不再一个一个可用。
如果是这种情况,您将不得不深入研究 grunt 进程(与 pipeline.js
文件相关,但也与许多其他文件相关)。您可以通过在本地主机上执行 --prod
lifts 来测试,如果您可以自由使用在线服务器,您也可以在那里执行非 --prod
lifts 以查看在这种情况下是否正常工作。
我找到了答案,我们必须在样式和脚本的注释中添加文件,例如
<!--STYLES-->
<link rel="stylesheet" href="/styles/mystyle.css" />
<!--STYLES END-->
<!--SCRIPTS-->
<script type="text/javascript" src="/js/myscript.js"></script>
<!--SCRIPTS END-->
这个 SCRIPTS 和 STYLES 标签将充当那些外部文件的链接器
首先,感谢您解开我的疑惑。
我想在 layout.ejs 文件中使用我的 .css 和 .js 文件,我可以通过 http://localhost:1337/js/sample.js 完成,但很难在在线服务器中加载此类文件,因为端口号和域名更改。如何在不通过 URL 方法的情况下在布局文件中使用这些文件。
我试过 /js/sample.js 和 /**/js/sample.js 没有任何效果,我很沮丧。
我什至也试过管道方法
var jsFilesToInject = [
'js/dependencies/sails.io.js',
'js/dependencies/**/*.js',
'js/**/*.js',
'js/**/**/*.js'
];
JQuery方法也
<script>
$(document).ready(function() {
$('head').append('<link rel="stylesheet" href='+document.location.origin + '"/styles/sb-admin.css" type="text/css" />' +
'<link rel="stylesheet" href='+ document.location.origin + '"/styles/plugins/morris.css" type="text/css" />' +
'<link rel="stylesheet" href='+document.location.origin + '"/styles/plugins/morris.css" type="text/css" />');
$.when(
$.getScript(document.location.origin + "/js/plugins/morris/raphael.min.js"),
$.getScript(document.location.origin + "/js/plugins/morris/morris.min.js"),
$.getScript(document.location.origin + "/js/plugins/morris/morris-data.js"),
$.Deferred(function (deferred) {
$(deferred.resolve);
})
);
});
</script>
没有任何效果..!!
如果您的项目有文件:
assets/js/myscript.js
assets/styles/mystyle.css
那么以下内容应该在任何服务页面(直接 html 资源,或从模板或视图返回的任何内容)中工作:
<script type="text/javascript" src="/js/myscript.js"></script>
<link rel="stylesheet" href="/styles/mystyle.css" />
如果这不起作用,则可能是其他进程导致了问题。我的猜测是,当您在本地主机上开发时,您在做 sails lift
,但在在线服务器上做 sails lift --prod
。
是吗?如果是这样,Grunt(默认情况下带有 sails)可能会在开发和产品提升之间以不同的方式处理一些事情。可能是您正在寻找的文件正在被串联 and/or 缩小到某个 production.js
文件中,并且不再一个一个可用。
如果是这种情况,您将不得不深入研究 grunt 进程(与 pipeline.js
文件相关,但也与许多其他文件相关)。您可以通过在本地主机上执行 --prod
lifts 来测试,如果您可以自由使用在线服务器,您也可以在那里执行非 --prod
lifts 以查看在这种情况下是否正常工作。
我找到了答案,我们必须在样式和脚本的注释中添加文件,例如
<!--STYLES-->
<link rel="stylesheet" href="/styles/mystyle.css" />
<!--STYLES END-->
<!--SCRIPTS-->
<script type="text/javascript" src="/js/myscript.js"></script>
<!--SCRIPTS END-->
这个 SCRIPTS 和 STYLES 标签将充当那些外部文件的链接器