如何在 html 页面上动态添加路由到脚本 src
How to dynamically add route to script src on an html page?
>我有一个HTML页面,它引用了一些脚本,如下所示:
<script charset="utf-8" src="Content/Styles/ThemeForest/assets/js/vendors.js"></script>
<script charset="utf-8" src="Content/Styles/ThemeForest/assets/js/app.js"></script>
问题是,当我将我的网站上传到服务器时,它不再工作。我想如果我改为添加 Web 应用程序名称,它将再次工作。像这样:
<script charset="utf-8" src="MySite/Content/Styles/ThemeForest/assets/js/vendors.js"></script>
<script charset="utf-8" src="MySite/CContent/Styles/ThemeForest/assets/js/app.js"></script>
现在,问题是,我可能不知道 Web 应用程序名称上传到服务器后会是什么样子......因此,我想将应用程序名称动态添加到 src。
我注意到有一个名为window.location.pathname的JavaScript函数,它可以为我带来Web应用程序名称(如果有的话)。我可以将其连接到路线的其余部分,它应该可以工作。
现在,问题是,这一切都在一个常规的HTML页面上。有没有办法使用基本的 JavaScript 函数为这些脚本标签设置自定义路由?还是其他想法?
您可以使用类似 $script 的东西,只需在 app.run 或任何其他位置添加该代码行,并使用要加载的 js 文件的路由数组调用它。您说您可以获取 Web 应用程序名称,因此只需传递与脚本路径连接的应用程序名称:
var dependenciesLoadingFactory = function(deps) {
return ['$q', '$rootScope', function($q, $rootScope) {
var deferred = $q.defer();
$script(deps, function() {
$rootScope.$apply(function() { deferred.resolve(); });
});
return deferred.promise;
}];
};
如果您链接到以目录或文件名本身开头的源文档(就像您在问题中所做的那样),查找将从当前文件(这将是包含脚本标签的 html 文件)所在的同一文件夹中开始查找它。您还可以链接到相对于当前位置的父目录中的文件,如下所示:
../file.js
您也可以链接到以斜杠开头的路径:
/dir/to/your/file.js
这将开始查找您网页的根目录,即您的域或子域指向的目录。您无法成功链接到根目录上方的文件。
最后,如果您的文件位于另一台服务器上,请确保包含完整路径,包括 http://代码段:
http://example.website.com/dir/file.js
在正常情况下,真的没有理由偏离这些方法,但是如果你绝对必须动态设置一个目录,我建议你使用 php,因为它是服务器端的,因此对用户来说更快,如果他们禁用了 javascript,这很重要(如果你以这种方式链接到其他文件,如样式表,这很重要):
<?php $directory = '/dir/'; ?>
<script src="<?php print $directory; ?>file.js"></script>
当然,要做到这一点,你的服务器必须运行php。
- 如何在 html 页面上动态添加路由到脚本 src
- 流星 - 添加带有熨斗的路由后无法提交用户.路由器到登录和注册表单
- Nodejs-使用regex将多个参数添加到路由中
- Ember教程-向router.js添加新的路由
- Ember添加了对转换调用上下文(路由/控制器)的检查
- 动态添加/注册AngularJS控制器,无需路由
- 为什么我的 AngularJS 应用程序在添加路由时不起作用
- Nodejs 快速路由:如果添加了“/”,则没有样式
- 路由不起作用 AngularJS,只是添加一个哈希
- Express :如何将中间件独占添加到路由器对象中的大型路由列表中
- 如何在运行时将路由或状态添加到 Ember.Router
- 主干:从视图类向路由器添加路由
- 如何使用 jQuery 将带有 Laravel 路由的标签添加到表行>< 标记
- 将 /.json 添加到快速路由末尾的最佳方法是什么
- Ember JS 在添加新路由后呈现默认模板
- 如何为AngularJS路由添加动态前缀
- AngularJS为后退按钮的路由添加内容
- AngularJS路由添加了任何特殊字符
- 使用路由添加的控制器在Angular JS中声明$scope变量
- AngularJS为路由添加授权