我刚刚开始使用Laravel/Composer。我想用composer自动加载器加载jquery。
我的composer.json
文件如下所示:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.1.*",
"frameworks/jquery": "1.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
],
"files":[
"vendor/frameworks/jquery/jquery.min.js"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
注意,我已经将jquery添加到了require列表中,并将jquery.min.js添加到了autoload/files中。它加载,但作为纯文本,而不是作为js文件。
这一定是我在做的愚蠢的事情,但我想不通。如何正确加载文件?
您不能使用composer自动加载jQuery,因为这意味着您希望使用PHP脚本引擎在服务器上执行Javascript。这永远不会奏效。
您想要做的是在使用PHP创建的页面中包含jQuery。可能会将其作为加载它的javascript标记。这意味着您必须配置一种方法,使jquery.min.js
文件在服务器上可用于HTTP访问。
frameworks/jquery
软件包没有任何关于如何做到这一点的建议。它只需抓取文件并将其添加到供应商文件夹中。如果你想让它对浏览器可用,你可以将它复制到文档根目录中,设置一个读取文件并将其发送到浏览器的脚本,为其设置符号链接,或者向供应商目录添加别名。所有这些解决方案都不是很好,但如果被问到,我更喜欢复制步骤。
有一个components/jquery
包,它使用另一个包来轻松配置文件的放置位置。你应该对此进行调查,阅读自述。它看起来维护起来要好得多,基本上可以完成复制步骤。
我可能错了,但composer用于自动加载php文件。它允许你在不包含它的情况下调用一些东西。这一切都在服务器端。我认为你不能做你想做的事。