php - 制作 CMS 网站不加载 CSS 和 JavaScript 文件
问题描述
我从 Git 存储库克隆了一个现有的 Craft 项目,并运行php craft setup
命令在 .env 文件中添加我自己的数据库凭据和 SECURITY_KEY。
我正在使用 MAMP 在本地服务器上运行它。数据库端口设置为 8889,服务器指向 Craft 项目的web文件夹。
当我访问我的本地主机时,网站确实加载了,我可以看到所有通过 HTML 加载的图像。但它不加载 CSS 或 JavaScript。在控制台中,指向 CSS 文件的链接显示href=(unknown)。
在 .twig 模板中,指向 CSS 的链接使用 siteUrl,如下所示:
<link rel="stylesheet" href="{% includeCssFile siteUrl~'css/file.css' %}">
和这样的JS文件:
{% includeJsFile siteUrl~'js/file.js' %}
这就是我的 .env 文件的样子:
# The environment Craft is currently running in ('dev', 'staging', 'production', etc.)
ENVIRONMENT="dev"
# The secure key Craft will use for hashing and encrypting data
SECURITY_KEY="myKey"
# The Data Source Name (“DSN”) that tells Craft how to connect to the database
DB_DSN="mysql:host=localhost;port=8888;dbname=db"
# The database username to connect with
DB_USER="user"
# The database password to connect with
DB_PASSWORD="user"
# The database schema that will be used (PostgreSQL only)
DB_SCHEMA=""
# The prefix that should be added to generated table names (only necessary if multiple things are sharing the same database)
DB_TABLE_PREFIX=""
DEFAULT_SITE_URL="http://localhost:8888/project/web/"
这是我迄今为止尝试过的:
- 使用 Composer 从头开始设置 Craft 项目
- 在 config/general.php中将“ devMode ”设置为“ false ”
- 将数据库端口更改为 3306
- 通过登录 Craft 的管理面板设置数据库
以上都没有奏效。任何帮助将非常感激。谢谢!
解决方案
我不知道您的方法使用例如:
{% includeJsFile siteUrl~'js/file.js' %}
路径似乎不正确。但是,我想我为您找到了合适的解决方案:
- 将变量添加到您的
.env
文件中。 - 将这些变量作为别名添加到
general.php
- 在您的模板中使用它们。
给你举个例子:
- 添加
YOUR_NAME="https://yoursite.com"
到.env
文件中。 - 将以下内容添加到
general.php
您的config
文件夹中:
'aliases' => [
'@your_name' => getenv('YOUR_NAME')
],
- 在模板中使用别名:
<link rel="stylesheet" href="{{ alias('@your_name') }}/css/file.png">
额外提示:这些变量也可用于在控制面板的资产中配置您的卷。
推荐阅读
- mysql - 为什么在此之后我什么也做不了?
- java - 在 JUnit 4 的相同测试方法下使用多个参数测试相同的异常
- gnu - 我必须为 GNU libc 扩展 tdestroy 链接哪个库
- c++ - CGAL - 如何使用 CGAL::Polygon_mesh_processing::connected_components 将一个 CGAL::Surface_mesh 转换为多个?
- ecmascript-6 - 我应该使用什么类型在 jsdoc 中记录 ES6 模块参数?
- java - 我需要从 Farm 类的 Employee 类中获取最大值
- vb.net - 从列表框中列出的文本文件中删除行
- android - 即使在 Play 商店中关闭自动更新,如何让我的应用更新?
- php - 使用准备好的语句进行全文搜索返回空数组
- javascript - ajax 无法将请求发送到另一个 php 页面