我用了两种方法来处理这些:
获取类似 CDN 的服务器
拥有这些文件的单一版本并将它们放在服务器上。例如,您可以有如下 URL:
https://cdn.example.com/css/helpers.css
https://cdn.example.com/js/helpers.js
如果您想支持版本(也许应该?),您可以将其添加到文件名中:
https://cdn.example.com/css/helpers-1.3.css
https://cdn.example.com/js/helpers-1.2.js
如果您将所有文件视为具有一个通用版本,则转到路径:
https://cdn.example.com/1.2/css/helpers.css
https://cdn.example.com/1.2/js/helpers.js
如果您想在实际网站上使用该版本之前使用最新版本测试网站,则版本控制非常有用。
如果您能以这种方式实现,这无疑是最简单的方法。现在您的所有其他网站都将使用这些 URL,而不是文件的本地版本:
<link type="text/stylesheet" href="https://cdn.example.com/1.2/css/helpers.css"/>
在构建时提取这些文件
根据您组织网站的方式(从您的问题中确实不清楚)并假设您的计算机上有包含原始源的文件夹,您可以根据需要使用在上传之前运行的脚本引入这些文件您的网站。
就我而言,我喜欢分三步完成:
- 我写文件
- 我将文件复制到 .../build/... 文件夹
- 我将 .../build/... 文件夹发送到我的测试或生产服务器
这样做的一个原因是生成一个包含您想要的内容的构建文件夹,对其进行验证,然后将其发送到您的服务器。该验证仅在您编写脚本时发生。一旦完成,它应该不需要任何额外的工作。
所以...获得这样一个脚本的一个原因是我可以编译我的文件。例如,如果您编写 PHP 代码,服务器只需要代码的最压缩版本(除非您正在调试并且需要查找行号......)生成构建文件夹的脚本可以这样做:
for p in php/*.php
do
php -w $p build/$p
done
现在您服务器上的 PHP 代码可能会缩小 20%。
同样,您可以复制 helper.css 文件,如下所示:
cp ../helper-project/css/helper.css build/public_html/css/.
这会将 helpers.css 文件复制到您的构建文件夹。由于它会从您的 unique ../helper-project 文件夹中获取该文件,因此您始终会得到最新的。
除了简单的cp 命令,您还可以同时最小化该文件:
cleancss --remove-empty ../helper-project/css/helper.css > build/public_html/css/.
这里唯一的问题是,如果您对辅助项目进行更改,它不会自动更新所有项目。您仍然需要在每个项目中执行并运行生成构建文件夹并将其复制到您的服务器的脚本。然而,我发现这是一种实用的做事方式,因为这样我就知道何时进行更新,并且可以在投入生产之前测试生成的网站,一旦更新生产站点,我就可以验证它是仍然一切正常。