RequireJS与PHP和漂亮的URL
RequireJS with PHP and nice URL
我已经尝试解决这个问题好几个小时了,但我自己或在互联网上都找不到解决方案,所以最终我放弃了,决定发布一个问题。
我正在尝试使用RequireJS,用AMD管理的javascript构建我的新PHP应用程序。这是我第一次使用这种方法,我对此感到非常兴奋,但有一个问题使我的javascript无法正常工作。
这是一个很好的url通过路由完成。(我使用Nette Framework作为路由,使用Apache作为Web服务器(。在我设置了requrejs和我的依赖项之后,主页(localhost/(一切都很好,但当我转到其他页面时,它会停止工作,requirejs会抱怨"localhost/testapp/news/js/vendor/jquery/dist/jquery.js"
中不存在脚本。相反,它应该在"localhost/testapp/js/vendor/jquery/dist/jquery.js"
中查找,但它将mod_rewrite重写的参数(在本例中为演示者名称(作为基本url的一部分。我相信故障在我这边,因为这必须是非常常见的设置,而且我找不到类似的问题。
布局中的requirejs.latte(基本模板(:
<script src="{$basePath}/js/vendor/requirejs/require.js"></script>
<script>
var absolute_base = {$basePath};
require([absolute_base + '/js/app.js']);
</script>
(在Nette框架中的basePath变量始终是应用程序的根,无论其他参数如何——在本例中为/testapp
(
app.js
requirejs.config({
baseUrl: 'js/modules',
paths: {
'jquery': '../vendor/jquery/dist/jquery',
'ink': '../vendor/InkJS/dist/js/ink-all',
'ajax': '../vendor/ajax'
}
});
目录结构:
- www
- css
- sass
- graphics
- fonts
- js
- modules
- vendor
- jquery
- requirejs
- ink
- app.js
- index.php
这是我所能做到的。我尝试了很多组合,相对路径,路径前面的点,脚本标签的数据属性等等,但都没能找到解决方案。
非常感谢您的帮助,干杯!
我终于成功了。我发现,它不能以这种方式完成,因为requirejs将始终使用当前url作为"根",而不是脚本本身的url(在"script"标记中使用(。至少我还没有找到绕过这个问题的方法。
相反,我删除了整个app.js文件,并将配置直接移动到主模板中,php变量$basePath可用,我用它来定义basePath(基本上我定义了一个绝对路径,而不是相对路径(。
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- Angular JS IE9 Hashbang url rewriting
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 直接下载文件,而不是从window.open(url)
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 漂亮照片图片库中的Facebook赞按钮
- 通过js在新选项卡中有条件地打开url
- CKFinder 3为所选文件返回错误的URL
- 如何获取不属于我项目的上一页的URL
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 在URL中传递JS对象
- 将纯文本URL转换为可单击链接
- Javascript html每点击一次就会更改url
- 以角度管理动态URL
- 使用skel框架构建的响应式网站只有在使用漂亮的URL时才能应用css
- RequireJS与PHP和漂亮的URL
- 从angularjs中删除#并使url变得漂亮
- 静态网站的漂亮URL
- ajax提交请求与漂亮的URL